[ 
https://issues.apache.org/jira/browse/LOG4J2-1692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15657523#comment-15657523
 ] 

ASF GitHub Bot commented on LOG4J2-1692:
----------------------------------------

Github user mikaelstaldal commented on a diff in the pull request:

    https://github.com/apache/logging-log4j2/pull/48#discussion_r87621716
  
    --- Diff: src/site/xdoc/manual/thread-context.xml ---
    @@ -26,164 +26,183 @@
         </properties>
     
         <body>
    -      <section name="Log4j 2 API">
    -        <subsection name="Thread Context">
    -          <h4>Introduction</h4>
    -          <p>Log4j introduced the concept of the Mapped Diagnostic Context 
or MDC. It has been documented and
    -            discussed in numerous places including
    -            <a 
href="http://veerasundar.com/blog/2009/10/log4j-mdc-mapped-diagnostic-context-what-and-why/";>Log4j
 MDC: What and Why</a> and
    -            <a 
href="http://blog.f12.no/wp/2004/12/09/log4j-and-the-mapped-diagnostic-context/";>Log4j
 and the Mapped Diagnostic Context</a>.
    -            In addition, Log4j 1.x provides support for a Nested 
Diagnostic Context or NDC. It too has been documented
    -            and discussed in various places such as
    -            <a 
href="http://lstierneyltd.com/blog/development/log4j-nested-diagnostic-contexts-ndc/";>Log4j
 NDC</a>.
    -            SLF4J/Logback followed with its own implementation of the MDC, 
which is documented very well at
    -            <a href="http://logback.qos.ch/manual/mdc.html";>Mapped 
Diagnostic Context</a>.
    -          </p>
    -          <p>Log4j 2 continues with the idea of the MDC and the NDC but 
merges them into a single Thread Context.
    -            The Thread Context Map is the equivalent of the MDC and the 
Thread Context Stack is the equivalent of the
    -            NDC. Although these are frequently used for purposes other 
than diagnosing problems, they are still
    -            frequently referred to as the MDC and NDC in Log4j 2 since 
they are already well known by those acronyms.
    -          </p>
    -          <h4>Fish Tagging</h4>
    -          <p>Most real-world systems have to deal with multiple clients 
simultaneously. In a typical multithreaded
    -            implementation of such a system, different threads will handle 
different clients. Logging is
    -            especially well suited to trace and debug complex distributed 
applications. A common approach to
    -            differentiate the logging output of one client from another is 
to instantiate a new separate logger for
    -            each client. This promotes the proliferation of loggers and 
increases the management overhead of logging.
    -          </p>
    -          <p>A lighter technique is to uniquely stamp each log request 
initiated from the same client interaction.
    -            Neil Harrison described this method in the book "Patterns for 
Logging Diagnostic Messages," in <em>Pattern
    -            Languages of Program Design 3</em>, edited by R. Martin, D.  
Riehle, and F. Buschmann
    -            (Addison-Wesley, 1997). Just as a fish can be tagged and have 
its movement tracked, stamping log
    -            events with a common tag or set of data elements allows the 
complete flow of a transaction or a request
    -            to be tracked. We call this <i>Fish Tagging</i>.
    -          </p>
    -          <p>Log4j provides two mechanisms for performing Fish Tagging; 
the Thread Context Map and the Thread
    -            Context Stack. The Thread Context Map allows any number of 
items to be added and be identified
    -            using key/value pairs. The Thread Context Stack allows one or 
more items to be pushed on the
    -            Stack and then be identified by their order in the Stack or by 
the data itself. Since key/value
    -            pairs are more flexible, the Thread Context Map is recommended 
when data items may be added during
    -            the processing of the request or when there are more than one 
or two items.
    -          </p>
    -           <p>To uniquely stamp each request using the Thread Context 
Stack, the user pushes contextual information
    -             on to the Stack.
    -           </p>
    -            <pre class="prettyprint linenums">
    -ThreadContext.push(UUID.randomUUID().toString()); // Add the fishtag;
    +        <section name="Log4j 2 API">
    --- End diff --
    
    Can you revert the formatting changes? It makes it hard to review the 
actual changes.


> putAll() method for CloseableThreadContext
> ------------------------------------------
>
>                 Key: LOG4J2-1692
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1692
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: 2.6
>            Reporter: Greg Thomas
>            Priority: Minor
>
> The ThreadContext supports a putAll(final Map<String, String> m) method.
> It would be useful, particularly when using thread pools, to have a similar 
> method for the CloseableThreadContext.
> Similarly, a pushAll() method would be useful.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to