timberkt
1.5.1
ジェイク・ウォートンの木材図書館は素晴らしいです。これは、Javaに適したAPIを備えたJavaライブラリですが、Kotlinで使用する場合はそれほど慣用的ではありません。
このライブラリは、Kotlinから使いやすいAPIで木材に基づいています。フォーマットパラメーターを使用する代わりに、メッセージが記録されている場合にのみ評価されるラムダを渡します。
onCreate
でTree
インスタンスを構成します。 // Standard timber
Timber .d( " %d %s " , intVar + 3 , stringFun())
// Kotlin extensions
Timber .d { " ${intVar + 3 } ${stringFun()} " }
// or
d { " ${intVar + 3 } ${stringFun()} " }
同じメッセージとタグが3つのケースすべてでログインされます。
Kotlin拡張機能には、書くのがより便利であるという利点があり、状況によってはパフォーマンスもあります。通過したブロックは、メッセージが記録されている場合にのみ評価され、メッセージが複数のツリーにログに記録されている場合でも、ブロックは1回のみ評価されます。すべての拡張メソッドがインライン化されているため、このライブラリを使用することにメソッドカウントペナルティはありません。
ロギング例外オブジェクトは同じように動作します。
// Standard timber
Timber .e(exception, " %d exceptions " , errorCount)
// Kotlin extensions
Timber .e(exception) { " $errorCount exceptions " }
// or
e(exception) { " $errorCount exceptions " }
Timberには、ログコールの誤った使用を見つけるのに役立つ半ダースの糸くずチェックが付属しています。
長いカスタムタグを除いて、このライブラリではチェックが求めるエラーは不可能です。 Lambdas内でログ拡張機能に渡された任意のコードを実行できます。また、メッセージが印刷されない限り、ブロックは評価されないため、リリースコードにパフォーマンスの問題のリスクはありません。
木材用のKotlin拡張機能は、Maven Central、Jcenter、Jitpackで分布しています。
implementation ' com.github.ajalt:timberkt:1.5.1 '
ドキュメントはここでオンラインでホストされています。
Copyright 2017-2018 AJ Alt
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.