title: Control flow of logger used in android samples
body: <p>I liked the way the logger is used in Android samples and want to implement the same in my App. But I am finding it difficult to understand the control flow. Can someone help me in understanding it.</p>
  
  <p>I am refering the RecyclerView Sample. </p>
  
  <p>Download Link :<a href="https://developer.android.com/downloads/samples/RecyclerView.zip" rel="nofollow noreferrer">https://developer.android.com/downloads/samples/RecyclerView.zip</a></p>
  
  <p>Screenshot of the Project Structure :</p>
  
  <p><a href="https://i.stack.imgur.com/Divl6.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Divl6.png" alt="The screenshot of project structure"></a></p>
  
  <p>Edit1 : I am not getting what is actually happening here where it says <em>For piping: The next node to receive Log data...</em>. And how the messages are printed on console as well as UI.</p>
  
  <p>Code section from LogWrapper class :</p>
  
  <pre><code>// 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;
  }
  </code></pre>
  
  <p>I want to know the relationship between various classes under logger package and how the control flows between them when we call Log.d() from activity, fragment or adapter.</p>