Платформа iOS CocoaLumberjack не регистрирует файл на устройстве - PullRequest
0 голосов
/ 28 января 2019

Это то, как я генерирую файл журнала на устройстве, чтобы каждый оператор NSLog регистрировал этот файл:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];
NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);

Теперь я интегрирую инфраструктуру Cocoalumberjack в мое приложение iOS:

# Set a ddLogLevel
static const DDLogLevel ddLogLevel = DDLogLevelAll;

# Add logger for > iOS 10.0 and < iOS 10.0
if (@available(iOS 10.0, *)) {
    [DDLog addLogger:DDOSLogger.sharedInstance];
} else {
    [DDLog addLogger:DDTTYLogger.sharedInstance];
    [DDLog addLogger:DDASLLogger.sharedInstance];
}
...
# I use DDLogDebug to log a debug message...
DDLogDebug(@"%@", message);

Однако теперь он больше не регистрируется в файле.Устройство, которое я использовал для тестирования, - это iPhone 7 с iOS 12.0.Так что DDOSLogger действительно добавлен.В чем здесь проблема?

1 Ответ

0 голосов
/ 06 марта 2019

Вам нужно создать экземпляр fileLogger, а затем добавить его в DDLog

let fileLogger: DDFileLogger = DDFileLogger() 
//Some config here
DDLog.add(fileLogger)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...