iOS Cocoalumberjack:ThreadId和ProcessId不在文件记录器中打印,但在TTY控制台日志中打印

时间:2019-03-03 08:29:04

标签: ios swift cocoalumberjack

我已经在Swift中创建了TestProject,并使用CocoaPod添加了Cocoalumberjack。初始化Cocoalumberjack记录器,以将日志添加到控制台和文件。请在下面找到初始化程序代码段。

    DDLog.add(DDTTYLogger.sharedInstance, with: DDLogLevel.verbose) // TTY = Xcode console

    let fileLogger: DDFileLogger = DDFileLogger() // File Logger
    fileLogger.rollingFrequency = 60 * 60 * 24 // 24 hours
    fileLogger.logFileManager.maximumNumberOfLogFiles = 7
    DDLog.add(fileLogger)

当我打印测试消息时,在文件中添加但在控制台中存在的日志中缺少线程ID和进程ID。

DDLogDebug("Test message")
  

控制台日志:2019-03-03 13:28:00:427 TestProject [81343:2525521]测试消息

     

文件日志:2019/03/03 13:28:00:427测试消息

我还需要在文件日志中添加线程ID和进程ID(81343:2525521)。 有人可以帮我解决这个问题吗?

Cocoapod版本:1.5.3

可可伐木工人:CocoaLumberjack / Swift(3.4.2)

1 个答案:

答案 0 :(得分:1)

您需要一种自定义格式。这里是threadID和时间戳的示例

class MyCustom: NSObject, DDLogFormatter { 
    func format(message logMessage: DDLogMessage) -> String? { 
       return "\(logMessage.threadID) - \(logMessage.timestamp)" 
    } 
}

然后将其添加到文件记录器中:     fileLogger.logFormatter = MyCustom()