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

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

The design of the ContextDataInjector makes sense from a log4j-core 
implementation point of view, but it should also be implemented by 3rd parties 
who are not aware of all the intricate details of log4j-core implementation.

I am a bit worried that the interface will appear strange and annoying to them.

An abstract base class could implement one of the methods in terms of the 
other, and let the 3rd party implement one only.

{code}
abstract class AbstractContextDataInjector implements ContextDataInjector {
  public MutableContextData injectContextData(final List<Property> properties, 
final MutableContextData reusable) {
    ThreadContextDataInjector.copyProperties(properties, reusable);
    reusable.putAll(rawContextData()); 
  }
}
{code}

> Injectable context properties
> -----------------------------
>
>                 Key: LOG4J2-1010
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1010
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.2
>            Reporter: Mikael Ståldal
>            Assignee: Remko Popma
>             Fix For: 2.7
>
>         Attachments: properties.patch
>
>
> It would be useful to have a way to inject context properties into a 
> {{LogEvent}}, as an alternative to {{ThreadContext}}.
> In an asynchronous environment, using ThreadContext as currently implemented 
> 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: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to