木材是用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的體系結構頁面。