#ios #swift #cocoalumberjack
#iOS #swift #cocoalumberjack
Вопрос:
Я создал TestProject в Swift и добавил Cocoalumberjack с помощью CocoaPod. Инициализирован Cocoalumberjack logger для добавления журналов в консоль и файл. Пожалуйста, найдите фрагмент кода инициализатора ниже.
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 Тестовый проект[
81343:2525521
] Тестовое сообщениеЖурнал файлов : 2019/03/03 13:28:00:427 Тестовое сообщение
Мне нужно, чтобы идентификатор потока и процесса (81343: 2525521) также добавлялись в журналы файлов. Может ли кто-нибудь помочь мне исправить это?
Версия Cocoapod: 1.5.3
Cocoalumberjack: CocoaLumberjack/Swift (3.4.2)
Ответ №1:
Для этого нужен пользовательский формат. Вот пример для ThreadId и метки времени
class MyCustom: NSObject, DDLogFormatter {
func format(message logMessage: DDLogMessage) -> String? {
return "(logMessage.threadID) - (logMessage.timestamp)"
}
}
Затем добавление в ваш файловый регистратор:
fileLogger.logFormatter = MyCustom()
Комментарии:
1. Спасибо @donmichael. Я удалил level, как вы предложили. Но проблема все еще не решена.
2. Не могли бы вы показать код, как вы регистрируетесь
thread id and process id
3. Идентификатор потока и процесс регистрируются Cocoalumberjack. Это код для печати тестового сообщения. «DDLogDebug («Тестовое сообщение»)». Он печатает эти идентификаторы только в консоли, но не в файле.
4.Хорошо, теперь я понял. Для этого нужен пользовательский формат. Вот образец для
threadID
иtimestamp
class MyCustom: NSObject, DDLogFormatter { func format(message logMessage: DDLogMessage) -> String? { return "(logMessage.threadID) - (logMessage.timestamp)" } }
последующего добавления в ваш file logger:fileLogger.logFormatter = MyCustom()
5. Кстати, здесь вы можете найти всю информацию, относящуюся к сообщению журнала: информация, относящаяся к сообщению журнала, включая: github.com/CocoaLumberjack/CocoaLumberjack/blob/master /…