我是 CocoaLumberjack 的新手,我在 this 之后让它在 Swift 上工作.如果我尝试打印日志:
DDLogDebug("Debug")
DDLogInfo("Info")
DDLogWarn("Warning")
DDLogVerbose("Verbose")
DDLogError("Error")
一切正常,我打印了所有级别,因为我的 defaultDebugLevel
是 DDLogLevel.Verbose。
但我无法找到/找出如何使用日志打印行或文件名。有什么想法吗?
非常感谢!!
最佳答案
经过更多研究,我发现您必须创建一个日志格式化程序,这个日志格式化程序是 DDDispatchQueueLogFormatter
的子类,您必须重写一个接收 DDLogMessage
的函数> 并返回一个 String
,例如:
import Foundation
import CocoaLumberjack.DDDispatchQueueLogFormatter
class LogFormatter: DDDispatchQueueLogFormatter {
let dateFormatter: NSDateFormatter
override init() {
dateFormatter = NSDateFormatter()
dateFormatter.formatterBehavior = .Behavior10_4
dateFormatter.dateFormat = "HH:mm"
super.init()
}
override func formatLogMessage(logMessage: DDLogMessage!) -> String {
let dateAndTime = dateFormatter.stringFromDate(logMessage.timestamp)
return "\(dateAndTime) [\(logMessage.fileName):\(logMessage.line)]: \(logMessage.message)"
}
}
然后你只需要像这样在你的 AppDelegate 或任何你设置 CocaLumberJack 的地方添加你的格式化程序:
DDTTYLogger.sharedInstance().logFormatter = LogFormatter()
希望对大家有帮助!
关于ios - Swift 中的 CocoaLumberjack,如何打印行号和文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31415913/