Timberは、Swiftで書かれた軽量ロギングフレームワークです。これは非常にパフォーマンスがあり、すべてのロギングベースの操作をメインスレッドから離れて実行し、UIまたはその他の操作が影響を受けないようにします。
また、木材は非常に柔軟です。ログメッセージの表示方法を指定できるLogFormat
クラスを提供し、ファイル名、関数、行など、ログメッセージが実行されたファイルに関連するさまざまな情報を含む。
Timberは、ファイルや自分のサーバーなどの他の場所にログメッセージを保存するために独自のパイプを提供することにより、ログをコンソールから遠ざける手段を提供します。
他の多くの利用可能なロギングフレームワークとは異なり、Timberを使用すると、ファイルのすべてのログレベルを指定できます。たとえば、ネットワーククラスでLogger.registerMinLevel(.None)
を呼び出すことにより、個別の機能のテスト中にネットワークリクエストのロギングを無効にしたい場合は、ログメッセージを出力から無効にすることができます。
Podfileに次のことを追加するだけです。 cocoapodの名前はTimber
ではなくTimberSwift
であることに注意してください。
pod 'TimberSwift'
リポジトリをクローンし、プロジェクトに /木材 /クラスにあるすべてのファイルを追加します。
木材をプロジェクトに統合する前に、ユニットテストを実行することをお勧めします。これは、Timberのルートディレクトリで以下を実行することで実行できます。バンドラーがインストールされていることを確認し、最初に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
であるTimberが使用するデフォルトのログ形式をオーバーライドするには、まず独自のLogFormat
インスタンス化し、グローバルLogger
または独自のロガーに渡す必要があります。
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と同じログ優先順位を均一に使用します。次のとおりです。
ALL < DEBUG < TRACE < INFO < WARN < ERROR < FATAL < OFF.
したがって、p> = qの場合、レベルqを持つロガーのレベルPのログ要求が有効になります。
レベル | 説明 |
---|---|
全て | カスタムレベルを含むすべてのレベル。 |
デバッグ | アプリケーションをデバッグするのに最も役立つ細粒の情報イベントを指定します。 |
エラー | アプリケーションの実行を継続できる可能性のあるエラーイベントを指定します。 |
致命的 | おそらくアプリケーションが中止に導く非常に深刻なエラーイベントを指定します。 |
情報 | 粗粒レベルでアプリケーションの進捗を強調する情報メッセージを指定します。 |
オフ | 可能な限り最高のランクであり、ロギングをオフにすることを目的としています。 |
トレース | デバッグよりも細かい粒度の情報イベントを指定します。 |
警告 | 潜在的に有害な状況を指定します。 |
視覚的に:
参照:log4jのアーキテクチャページ。