【问题标题】:iOS CocoaLumberjack logging framework not logging to a file on deviceiOS CocoaLumberjack 日志框架未记录到设备上的文件
【发布时间】:2019-01-28 15:19:13
【问题描述】:

这就是我在设备上生成日志文件的方式,以便将每个 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);

但是,现在它不再记录到文件中。我用于测试的设备是带有 iOS 12.0 的 iPhone 7。所以实际上添加了 DDOSLogger。这里有什么问题?

【问题讨论】:

  • 第一组代码与设置 CocoaLumberjack 有什么关系?如果要登录到文件,为什么不使用DDFileLogger
  • @rmaddy 第一组代码与设置 CocoaLumberjack 没有任何关系。这就是我过去在设备上登录文件的方式。

标签: ios cocoalumberjack


【解决方案1】:

您需要创建一个 fileLogger 实例,然后将其添加到 DDLog

let fileLogger: DDFileLogger = DDFileLogger() 
//Some config here
DDLog.add(fileLogger)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2019-02-21
    • 2011-02-12
    • 2017-06-25
    相关资源
    最近更新 更多