La bibliothèque de bois de Jake Wharton est super. C'est une bibliothèque Java avec une API qui fonctionne bien pour Java, mais ce n'est pas aussi idiomatique lorsqu'il est utilisé dans Kotlin.
Cette bibliothèque s'appuie sur du bois avec une API plus facile à utiliser depuis Kotlin. Au lieu d'utiliser des paramètres de formatage, vous transmettez un lambda qui n'est évalué que si le message est enregistré.
Tree
dans onCreate
de votre application, de la même manière qu'avec le bois simple. // Standard timber
Timber .d( " %d %s " , intVar + 3 , stringFun())
// Kotlin extensions
Timber .d { " ${intVar + 3 } ${stringFun()} " }
// or
d { " ${intVar + 3 } ${stringFun()} " }
Le même message et les même étiquettes seront enregistrés dans les trois cas.
Les extensions de Kotlin ont l'avantage d'être plus pratique à écrire et sont également plus performants dans certaines circonstances. Le bloc passé n'est évalué que si le message est enregistré, et même si le message est enregistré sur plusieurs arbres, le bloc n'est évalué qu'une seule fois. Toutes les méthodes d'extension sont incorporées, il n'y a donc pas de pénalité de comptage de méthodes à utiliser cette bibliothèque.
Les objets d'exception de journalisation fonctionnent de la même manière:
// Standard timber
Timber .e(exception, " %d exceptions " , errorCount)
// Kotlin extensions
Timber .e(exception) { " $errorCount exceptions " }
// or
e(exception) { " $errorCount exceptions " }
Le bois est livré avec une demi-douzaine de chèques de peluches qui vous aident à repérer une utilisation incorrecte des appels de journal.
À l'exception des longues balises personnalisées, aucune des erreurs que ces vérifications recherchent n'est possible avec cette bibliothèque. Vous pouvez effectuer du code arbitraire à l'intérieur des lambdas transmis aux extensions de journal, et il n'y a aucun risque de problèmes de performances dans votre code de libération car les blocs ne seront évalués que si les messages sont imprimés.
Les extensions de Kotlin pour le bois sont réparties avec Maven Central, JCenter et Jitpack.
implementation ' com.github.ajalt:timberkt:1.5.1 '
La documentation est hébergée en ligne ici.
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.