[logback-dev] [JIRA] Commented: (LBCLASSIC-275) LoggingEvent casts to LogbackMDCAdapter without checking

Ceki Gulcu (JIRA) noreply-jira at qos.ch
Mon Sep 19 13:17:16 CEST 2011

    [ http://jira.qos.ch/browse/LBCLASSIC-275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12124#action_12124 ] 

Ceki Gulcu commented on LBCLASSIC-275:

Hello Chris, 

I tried to make the code a little simpler by disallowing LoggingEvent#getMDCPropertyMap to return null values. It makes life easier downstream, in particular for users of JanoniEventEvaluator. As a result of this change, the size of serialized LoggingEvents increased by 3% in the case of null MDC which I think is acceptable.

> LoggingEvent casts to LogbackMDCAdapter without checking
> --------------------------------------------------------
>                 Key: LBCLASSIC-275
>                 URL: http://jira.qos.ch/browse/LBCLASSIC-275
>             Project: logback-classic
>          Issue Type: Bug
>    Affects Versions: 0.9.28
>            Reporter: Chris Dolan
>            Assignee: Ceki Gulcu
> LoggingEvent has this code:
>     // ugly but under the circumstances acceptable
>     LogbackMDCAdapter logbackMDCAdapter = (LogbackMDCAdapter) MDC
>         .getMDCAdapter();
>     mdcPropertyMap = logbackMDCAdapter.getPropertyMap();
> I'm trying to build a logback implementation of the OSGi pax-logging-service (http://www.ops4j.org/projects/pax/logging/index.html). But I've got a problem that PAX exports org.slf4j.impl with their own MDC adapter that fails this cast. Theirs has the nice feature that the OSGi bundle context is automatically added to the MDC (at a performance cost, alas).  I'd like to see LoggingEvent changed to something like the following for improved flexibility:
>    MDCAdapter mdc = MDC.getMDCAdapter();
>    if (MDCAdaptor instanceof LogbackMDCAdapter)
>        mdcPropertyMap = ((LogbackMDCAdapter)mdc).getPropertyMap();
>    else
>        mdcPropertyMap = mdc.getCopyOfContextMap();

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the logback-dev mailing list