I agree. It's an omission. Could you please create a bugzilla entry
for this item?

The change in contract which happened in the 1.5.x series created a
lot of icky problems downstream. See for instance [1]. I do not wish
to introduce the same type of problems for the sake of
elegance. Perhaps by adding a getMDCAdapter method in StaticMDCBinder
but leaving the SINGLETON field as static public (instead of
private). This should guarantee both forward and backward
compatibility and more (but not 100%) consistent code.

Thank you in advance for creating the bugzilla entry.

[1] http://slf4j.org/faq.html#IllegalAccessError

Gunnar Wagenknecht wrote:
Ceki Gulcu schrieb:
Hello Gunnar,

MDC is by construction a class with static methods. I fail to see how
IMDCFactory could be made to create a fixed and static class. It just
does not make sense. Have you noticed the MDCAdapter interface?

Sorry, I might not have been clear enough.

StaticMDCBinder uses a public static final field SINGLETON.
StaticLoggerBinder and StaticMarkerBinder use a public static method
getSingleton().

StaticLoggerBinder and StaticMarkerBinder implements and interface which
defines a contract for the public getter.
StaticMDCBinder does not.

I was wondering if the programming pattern should be the same in
StaticMDCBinder to make adoption easier and to have a contract for the
getMDCA and getMDCAdapterClassStr methods as we have for
StaticLoggerBinder and StaticMarkerBinder.

-Gunnar


--
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch
_______________________________________________
dev mailing list
dev@slf4j.org
http://www.slf4j.org/mailman/listinfo/dev

Reply via email to