I'm confused. Although the javadoc could be better 
http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/ThreadContext.html#getContext()
 and 
http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/ThreadContext.html#getContext()
 both say they return a copy.  ThreadContext doesn't have methods named 
getContextMap or getContextStack.

Note that the LogEvent is not available in the API.

Ralph

On Aug 5, 2012, at 10:45 PM, Scott Deboy wrote:

> My point was really the contract in the API javadoc should be updated and we 
> should implement that contract..if we neeed new APIs, that's ok..or if I'm 
> forced to create a new Log4jevent I'll deal with the contract.
> 
> Scott
> 
> On Sun, Aug 5, 2012 at 9:32 PM, Ralph Goers <[email protected]> 
> wrote:
> In the Log4j 2 API the getContext and cloneStack methods of ThreadContext 
> return copies of the Map and Stack.  In the LogEvent in impl getContextMap 
> and getContextStack return the actual Map and Stack that are in the LogEvent. 
> Copying them would be too expensive.
> 
> I don't know that there are any components yet that can add, delete or modify 
> MDC keys or values, but i know that such a feature would be desired.  That 
> said, the RewriteAppender uses the RewritePolicy which creates a new LogEvent.
> 
> Ralph
> 
> On Aug 5, 2012, at 7:16 PM, Scott Deboy wrote:
> 
> > Chainsaw and some Receivers add properties to events to support tracking, 
> > for example, log4jid is added by Chainsaw.
> >
> > One thing that needs to be clarified in the api contract is whether or not 
> > getContextMap and getContextStack give you a copy of the map/stack or the 
> > original, as again, Chainsaw and others will need to use some api to modify 
> > those values.
> >
> > Scott
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 

Reply via email to