Что именно делает библиотека Timber?

Я слышал о Древесина и читал github README, но меня это немного сбивает с толку.

Behavior is added through Tree instances. You can install an instance by calling Timber.plant. Installation of Trees should be done as early as possible. The onCreate of your application is the most logical choice.

Какое поведение?

This is a logger with a small, extensible API which provides utility on top of Android's normal Log class.

Что еще он предоставляет поверх журнала Android?

The DebugTree implementation will automatically figure out from which class it's being called and use that class name as its tag. Since the tags vary, it works really well when coupled with a log reader like Pidcat.

Что такое DebugTree?

There are no Tree implementations installed by default because every time you log in production, a puppy dies.

Опять же, что такое реализация дерева? Что оно делает? И как мне перестать убивать щенков?

Two easy steps:

Install any Tree instances you want in the onCreate of your application class.

Call Timber's static methods everywhere throughout your app.

Что за два простых шага?

Ничего из этого не было объяснено в Readme. Это в значительной степени описание для тех, кто уже знает, что это такое: /

эта статья отвечает сразу на все ваши вопросы.
Arthur Attout 24.12.2018 12:22

У него довольно запутанный README. Тем не менее, у меня есть много сомнений в производительности по сравнению с Log.

Prashant 24.01.2021 20:03

Здесь есть урок: плохая документация - это проблема. Timber вводит такие понятия, как «Деревья» и «Посадка», но не может объяснить это в своем README: 1 место, куда вы должны пойти, чтобы узнать, что они означают. Тот факт, что нам нужна статья о SO и Medium, чтобы понять ее фундаментальные концепции, весьма печален. Отличная библиотека, плохое общение.

wsgeorge 03.11.2021 23:20
6
3
2 008
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема :-

Мы не хотим печатать журналы в подписанном приложении, так как иногда мы можем регистрировать важную информацию. Обычно, чтобы преодолеть это, разработчики обычно пишут условие if перед записью журнала.

Пример:-

 if (BuildConfig.DEBUG) {
      Log.d(TAG,userName);
  }

поэтому каждый раз, когда вы хотите распечатать журнал, вам нужно написать условие if и TAG, который в большинстве случаев будет именем класса

Древесина решает эти две проблемы

Вам просто нужно один раз проверить условие в классе приложения и инициализировать Timber.plant.

class MyApplication : Application() {

override fun onCreate() {
    super.onCreate()

    if (BuildConfig.DEBUG) {
        Timber.plant(DebugTree())
     }
 }

} 

оставаясь во всех местах, мы можем просто записать Timber.d("Message") без каких-либо тегов или условий if.

Если вам нужен другой тег, вы можете использовать

  Timber.tag("Tag").d("message");

Редактировать :

Также вы можете сажать свои собственные деревья в Timber и делать некоторые интересные вещи, например, записывать только предупреждения и ошибки в выпуске, отправлять предупреждения и журналы ошибок на сервер и т. д. например

import timber.log.Timber;

public class ReleaseTree extends Timber.Tree {
  @Override 
  protected void log(int priority, String tag, String message, Throwable t) {

    if (priority == ERROR || priority == WARNING){
      //Send to server
    }

  }
}

Вы можете сажать разные деревья для разных вкусов.

Посмотрите этот статья и послушайте этот подкаст

Другие вопросы по теме