iOS Cocoalumberjack: ThreadId и ProcessId не печатаются в File Logger, но печатаются в журналах консоли TTY - PullRequest
0 голосов
/ 03 марта 2019

Я создал TestProject в Swift и добавил Cocoalumberjack, используя CocoaPod.Инициализированный регистратор 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)

Когда я печатаю тестовое сообщение, идентификатор потока и идентификатор процесса отсутствуют в журналах, добавленных в файл, но присутствующих в консоли.

DDLogDebug("Test message")

Журнал консоли : 2019-03-03 13: 28: 00: 427 TestProject [81343:2525521] Тестовое сообщение

Журнал файлов : 2019/03/03 13: 28: 00: 427 Тестовое сообщение

Мне также необходимо добавить идентификатор потока и идентификатор процесса (81343: 2525521) в журналах файлов.Может ли кто-нибудь помочь мне исправить это?

Версия Cocoapod: 1.5.3

Cocoalumberjack: CocoaLumberjack / Swift (3.4.2)

1 Ответ

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

Вам нужен собственный формат для него.Вот пример для идентификатора потока и отметки времени

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

Затем добавьте в ваш файл-логгер: fileLogger.logFormatter = MyCustom()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...