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

Ralph Goers edited comment on LOG4J2-1010 at 6/12/15 12:43 AM:
---------------------------------------------------------------

I would encourage you to look at the log method in LoggerConfig at line 352. If 
you notice, it gathers properties from the LoggerConfig and adds them to the 
LogEvent. These properties end up being included in the ThreadContext in the 
LogEvent.  Also, these properties are interpolated every time a log event is 
created. So you could create your own lookup and have it populate a property 
with all the items you want included in the log event.  All of this will work 
with no changes to Log4j. You would just need to declare the properties in your 
log4j2.xml.

If, for some reason, that isn't sufficient for you we could add another type of 
MapMessage that would have the properties in the Map included as properties in 
this log method.

I should also point out that some of the layouts already inspect the type of 
Message being processed and handle it in a way that makes sense. For example, 
the MessagePatternConverter, which is used by the PatternLayout, calls a 
special version of getFormattedMessage that accepts a format string if the 
message is a MultiFormattedMessage (which a MapMessage is).  So if you use a 
MapMessage and the standard PatternLayout the members of your Map would 
automatically be printed. 


was (Author: [email protected]):
I would encourage you to look at the log method in LoggerConfig at line 352. If 
you notice, it gathers properties from the LoggerConfig and adds them to the 
LogEvent. These properties end up being included in the ThreadContext in the 
LogEvent.  Also, these properties are interpolated every time a log event is 
created. So you could create your own lookup and have it populate a property 
with all the items you want included in the log event.  All of this will work 
with no changes to Log4j. You would just need to declare the properties in your 
log4j2.xml.

If, for some reason, that isn't sufficient for you we could add another type of 
MapMessage that would have the properties in the Map included as properties in 
this log method.

> 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