On 9 March 2015 at 22:37, Ceki Gülcü <[email protected]> wrote:

> MDC is a thread-wide structure. At present time, it cannot be set per
> logging event. Any changes you make to the mdcPropertyMap (retrieved by
> calling event.getMDCPropertyMap()) will be visible to all future events
> generated in the same thread.


Please forgive my ignorance if I say something wrong.

ch.qos.logback.classic.spi.LoggingEvent#getMDCPropertyMap returns:

1. If MDCAdapter has an already property map, It returns this map
2. If MDCAdapter has not a map, it returns a static map(CACHED_NULL_MAP)
which is shared among other threads as well. If I set it mistakenly, It
will be used by other threads.

This parts seems a little bid problematic.  I just want to share same map
reference between event and MDCAdapter which will let me:


>     public  FilterReply decide(ILoggingEvent event) {
>        if  (event.getLevel().isGreaterOrEqual(Level.WARN)) {
>           MDC.put("demo","demo");
>        }
>        return  FilterReply.ACCEPT;
>     }


Also I am expecting to be cleared in case a MDC.remove call. What do you
think?
_______________________________________________
Logback-user mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user

Reply via email to