A biblioteca de madeira de Jake Wharton é ótima. É uma biblioteca Java com uma API que funciona bem para Java, mas isso não é tão idiomático quando usado em Kotlin.
Esta biblioteca se baseia em madeira com uma API que é mais fácil de usar em Kotlin. Em vez de usar parâmetros de formatação, você passa um lambda que só é avaliado se a mensagem for registrada.
Tree
no onCreate
do seu aplicativo, da mesma maneira que na madeira simples. // Standard timber
Timber .d( " %d %s " , intVar + 3 , stringFun())
// Kotlin extensions
Timber .d { " ${intVar + 3 } ${stringFun()} " }
// or
d { " ${intVar + 3 } ${stringFun()} " }
A mesma mensagem e tags serão registradas nos três casos.
As extensões de Kotlin têm a vantagem de serem mais convenientes de escrever e também são mais executivas em algumas circunstâncias. O bloco passado é avaliado apenas se a mensagem for registrada e, mesmo que a mensagem seja registrada em várias árvores, o bloco for avaliado apenas uma vez. Todos os métodos de extensão estão inlinados; portanto, não há penalidade de contagem de métodos para usar esta biblioteca.
Os objetos de exceção de registro funcionam da mesma maneira:
// Standard timber
Timber .e(exception, " %d exceptions " , errorCount)
// Kotlin extensions
Timber .e(exception) { " $errorCount exceptions " }
// or
e(exception) { " $errorCount exceptions " }
A madeira vem com meia dúzia de verificações de fiapos que ajudam você a identificar o uso incorreto das chamadas de log.
Com exceção de tags personalizadas longas, nenhum dos erros que essas verificações procuram são possíveis com esta biblioteca. Você pode executar código arbitrário dentro dos Lambdas passados para as extensões de log e não há risco de problemas de desempenho no seu código de liberação, pois os blocos não serão avaliados, a menos que as mensagens sejam impressas.
As extensões de Kotlin para madeira são distribuídas com Maven Central, JCenter e Jitpack.
implementation ' com.github.ajalt:timberkt:1.5.1 '
A documentação está hospedada on -line aqui.
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.