http://bugzilla.slf4j.org/show_bug.cgi?id=31
--- Comment #94 from John Vasileff <[email protected]> 2011-09-07 16:57:10 CEST --- (In reply to comment #91) > I see 3 possibilities to dealing with changes in SLF4J: > 0) disallow any meaningful changes to SLF4J > 1) allow for breaking compatibility for adapter implementations (as done > historically in SLF4J) > 2) come up with an abstraction so flexible that it is future proof for the > next > 10 years. > 0 and 1 are doable. 2 requires great foresight. I suppose it is imposible to guarantee #2, but at least we can try! It may help to distill the contract between SLF4J and logger/adapter implementations into the fundamentals. An intial attempt: Adapters require access to: - The level & marker - The raw & formatted messages (raw for filtering only?) - The throwable, if exists - The processed arguments (strip trailing throwable). For performance reasons, adapters may also have access to the raw arguments. Sharing unpressed arguments is a performance tradeoff and should be avoided when possible. SLF4J requires from adapters: - isEnabled(marker, level) - ability to submit logs to adapters (obviously) Division of responsibilities: - SLF4J should fully control formatting, if applied. Allowing individual implementations to control the style of formatting violates the pluggable nature of back end logging frameworks. - SLF4J should fully control the application facing API. - SLF4J reserves the right to provide additional functionality so long as "Adapters require access to" points are satisfied (XLogger). I think the pros/cons of pluggable formatting is a separate debate, but providing a framework for things like this is relevant. The proposed Abstract[Raw]Logger would allow for future enhancements like: Logger myLogger = LoggerFactory.getLogger(MyClass.class) .formatWith(SLF4JFormatters.JAVA_UTIL_FORMATTER); or even: Logger myLogger = LoggerFactory.getLogger(MyClass.class) .formatWith(myFormatterInstance implements SLF4JFormatter); -- Configure bugmail: http://bugzilla.slf4j.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ slf4j-dev mailing list [email protected] http://qos.ch/mailman/listinfo/slf4j-dev
