木材是用Swift编写的轻量级伐木框架。它非常表现,并运行所有基于记录的操作,远离主线程,以确保UI或任何其他操作不受影响。
木材也很灵活。它提供了一个LogFormat
类,该类使您可以指定日志消息的外观,并包括自定义日期格式,以及与日志消息执行的文件相关的各种信息,例如文件名,函数和行。
Timber甚至提供了通过提供自己的管道将日志移动到其他位置的日志消息(例如在文件中或您自己的服务器上)将日志发送的方法,以将日志从控制台上移开。
与许多其他可用的记录框架不同,木材可让您为任何/所有文件指定日志级别。例如,您想在测试单独的功能时禁用网络请求的记录,通过调用Logger.registerMinLevel(.None)
在您的网络类中,您可以禁用日志消息,使其无法输出。
只需将以下内容添加到您的Podfile中即可。请注意,Cocoapod的名称是TimberSwift
而不是Timber
。
pod 'TimberSwift'
克隆存储库,并在项目中添加 /timber /class中的所有文件。
建议您在将木材集成到项目中之前运行单元测试。这可以通过在Timber的根目录中执行以下操作来完成。请确保您安装了Bundler,如果不运行,请先gem install bundler
。
$ bundle install
$ make test
Logger . registerMinLevel ( . Error ) // Set the log-level for the current file if needed
Logger . debug ( " This will not be logged as the debug log level is < error " )
Logger . error ( " Oh dear... An error occurred: ( some_error ) " )
Logger . info ( " The network request succeeded with status code ( status code ) " )
Logger . warn ( " The network response contains some unexpected data " )
// etc...
为了覆盖木材使用的默认日志格式,即[Level Date Filename:Line] Message
,您必须首先实例化自己的LogFormat
并将其传递到全局Logger
或您自己的logformat中。
let logFormat = LogFormat ( template : " [%@ %@ %@:%@] %@ " , attributes : [
LogFormatter . Attributes . Level ,
LogFormatter . Attributes . Date ( format : " HH:mm:ss " ) ,
LogFormatter . Attributes . FileName ( fullPath : false , fileExtension : true ) ,
LogFormatter . Attributes . Line ,
LogFormatter . Attributes . Message
] )
// Attach it to the global Logger
Logger . setFormat ( logFormat )
// Or attach it to your own logger
someLogger . logFormat = logFormat
// Or pass it in when you instantiate your logger
let someLogger = Logger ( minLevel : . All , logFormat : logFormat )
木材已充分记录,可以在http://maxkramer.github.io/timber/上找到该文档。
如Logger+loglevels.swift中所述,我们统一使用与Apache的Log4j相同的日志优先级。 IS如下:
ALL < DEBUG < TRACE < INFO < WARN < ERROR < FATAL < OFF.
因此,如果p> = q,启用了带有级别Q的记录器中P级的日志请求。
等级 | 描述 |
---|---|
全部 | 所有级别,包括自定义级别。 |
调试 | 指定对调试应用程序最有用的细粒度信息事件。 |
错误 | 指定可能仍允许应用程序继续运行的错误事件。 |
致命的 | 指定非常严重的错误事件,可能会导致应用程序中止。 |
信息 | 指定信息信息,以突出显示在粗粒水平上的应用程序的进度。 |
离开 | 最高的等级,旨在关闭记录。 |
痕迹 | 指定比调试更细粒度的信息事件。 |
警告 | 指定潜在的有害情况。 |
视觉上:
参考:Log4J的体系结构页面。