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

iOS Cocoalumberjack: ThreadId and ProcessId not printed in File Logger but prints in TTY Console logs

我在 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")

Console log: 2019-03-03 13:28:00:427 TestProject[81343:2525521] Test message

File Log: 2019/03/03 13:28:00:427 Test message

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

Cocoapod 版本:1.5.3

Cocoalumberjack:CocoaLumberjack/Swift (3.4.2)

您需要自定义格式。这是 threadID 和时间戳

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

然后添加到您的文件记录器: fileLogger.logFormatter = MyCustom()