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

Mikael Ståldal commented on LOG4J2-1010:
----------------------------------------

I am developing a Scala wrapper around Log4j 2 (similar to [Typesafe's 
Scala-logging|https://github.com/typesafehub/scala-logging/] but using Log4j 2 
directly), which handles context in a different way than ThreadContext. It uses 
the methods in ExtendedLogger to do the actual logging.

Currently I have to use a workaround like this:
{code}
try {
  ThreadContext.put(key1, value1);
  ThreadContext.put(key2, value2);
  delegateLogger.logIfEnabled(FQCN, level, marker, message, cause);
} finally {
  ThreadContext.remove(key1);
  ThreadContext.remove(key2);
}
{code}

I would like to be able to do this instead:

{code}
  delegateLogger.logIfEnabled(FQCN, level, marker, message, cause, contextMap);
{code}

How am I supposed to pass in the context map in the Message object?


> Possibility to set ThreadContext values in calls to Logger method
> -----------------------------------------------------------------
>
>                 Key: LOG4J2-1010
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1010
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: API
>    Affects Versions: 2.2
>            Reporter: Mikael Ståldal
>
> It would be useful to have some logging methods in the Logger interface to 
> set ThreadContext values for a single log message only.
> In an asynchronous environment, using ThreadContext as currently defined is 
> not so useful since JVM threads might not be coupled to the logical flow of 
> the application.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to