7

Timberのことを聞いてgithub を読んREADMEでいましたが、静かに混乱しています。

動作は Tree インスタンスを通じて追加されます。Timber.plant を呼び出してインスタンスをインストールできます。ツリーのインストールは、できるだけ早く行う必要があります。アプリケーションの onCreate は、最も論理的な選択です。

どんな振る舞い?

これは、Android の通常の Log クラスに加えてユーティリティを提供する、小さくて拡張可能な API を備えたロガーです。

Android のログに加えて、さらに何を提供しますか?

DebugTree の実装は、どのクラスから呼び出されているかを自動的に判断し、そのクラス名をタグとして使用します。タグはさまざまであるため、Pidcat のようなログ リーダーと組み合わせると非常にうまく機能します。

デバッグツリーとは?

本番環境にログインするたびに子犬が死亡するため、デフォルトでインストールされる Tree 実装はありません。

繰り返しますが、ツリー実装とは何ですか? それは何をするためのものか?どうすれば子犬を殺すのをやめられますか?

2 つの簡単な手順:

アプリケーション クラスの onCreate に必要な Tree インスタンスをインストールします。

アプリ全体のあらゆる場所で Timber の静的メソッドを呼び出します。

何を達成するための2つの簡単なステップ?

これについては、Readme で説明されていません。それが何であるかをすでに知っている人のための説明です:/

4

1 に答える 1

6

問題 :-

重要な情報をログに記録する場合があるため、Signed アプリケーションでログを出力したくありません。一般に、この問題を解決するために、開発者はログを書き込む前に if 条件を書く傾向があります。

例:-

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

そのため、ログを出力するたびに、if 条件と、ほとんどの場合クラス名になる TAG を記述する必要があります。

Timber はこれら 2 つの問題に取り組みます

アプリケーションクラスで一度条件をチェックして初期化するだけです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
    }

  }
}

ビルド フレーバーごとに異なる木を植えることができます。

この記事をチェックして、このポッドキャストを聞いてください

于 2018-12-24T11:51:50.783 に答える