У меня есть приложение какао, работающее на OS X. Я использовал NSLog для отладки цели. Теперь я хочу перенаправить операторы журнала в файл вместо консоли.
Я использовал этот метод, но он заканчивается, входя в систему Консоль, а также в файле.
- (BOOL)redirectNSLog
{
// Create log file
[@"" writeToFile:@"/NSLog.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
id fileHandle = [NSFileHandle fileHandleForWritingAtPath:@"/NSLog.txt"];
if (!fileHandle) return NSLog(@"Opening log failed"), NO;
[fileHandle retain];
// Redirect stderr
int err = dup2([fileHandle fileDescriptor], STDERR_FILENO);
if (!err) return NSLog(@"Couldn't redirect stderr"), NO;
return YES;
}
Действительно ли возможно не иметь оператор журнала в консоли, но только в файле??
NSLog
сделан для записи в консоль. Вам нужно определить свою собственную функцию MyLog
или любую другую, и заменить все вхождения NSLog
на MyLog
.