2016-05-26 9 views
0

ロガーがAndroidサンプルで使用されている方法が好きで、これをアプリケーションに実装したいと思っています。しかし、私はコントロールの流れを理解するのが難しいと思っています。誰かが私の理解を助けることができますか?アンドロイドサンプルで使用されているロガーの制御フロー

私はRecyclerViewサンプルを参照しています。

ダウンロードリンク:プロジェクト構造のhttps://developer.android.com/downloads/samples/RecyclerView.zip

スクリーンショット:

The screenshot of project structure

EDIT1:私はそれは配管のためにを言うところ、実際にここで何が起こっているのかなっていない午前:次のノードが受信しますログデータ...。また、メッセージはコンソールとUIにどのように表示されますか。 LogWrapperクラスから

コードセクション:

// For piping: The next node to receive Log data after this one has done its work. 
private LogNode mNext; 

/** 
* Returns the next LogNode in the linked list. 
*/ 
public LogNode getNext() { 
    return mNext; 
} 

/** 
* Sets the LogNode data will be sent to.. 
*/ 
public void setNext(LogNode node) { 
    mNext = node; 
} 

私はロガーパッケージの下にさまざまなクラス間の関係を知りたいと、それらの間の制御フローは、私たちは活動、フラグメントまたはアダプタからLog.d()を呼び出したときにどのように。

+0

なぜ標準のロガーよりも優れていますか? [Timber](https://github.com/JakeWharton/timber)を試しましたか? –

+0

@ MaximG:いいえ、私はそれについて知らなかった。私はそれを見てみましょう。このサンプルでは、​​このロガーを使用してUI(TextViews)のログを印刷しています。私は同じコンセプトを使用し、ログをファイルにリダイレクトすることを考えています。 –

答えて

0

リンクリストを介して配管されています。

MainActivity.initializeLogging()には、このリストが入力されます。

LogWrapper - > MessageOnlyLogFilter - >ログ表示

すべてのこれらのクラス実装するインターフェースLogNode(印刷することができる)とリスト同様に挙動(ノードおよび次に移動します)。

LogWrapperはすべてのメッセージを標準のロガーに送信します。ノードが存在する場合はメッセージをパイプします(このケースではMessageOnlyLogFilter)。

MessageOnlyLogFilterはメッセージ以外のすべてを取り除き、次のノード(LogView)にプッシュします。

LogViewはTextViewを拡張し、画面上にログを印刷します。

+0

Loggerパッケージの下のさまざまなクラスと、Log.d()をアクティビティ、フラグメント、またはアダプタから呼び出すときに、それらの間で制御がどのように流れるかを知りたい。 UIと同様にコンソール上での印刷方法。私は私のことを混乱させるもので私の質問を更新します。 –

+0

質問が更新されました。 –

+0

答えは=) –