[Bug 31] Varargs for Logger methods

http://bugzilla.slf4j.org/show_bug.cgi?id=31 --- Comment #94 from John Vasileff <git@netcc.us> 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.
participants (1)
-
bugzilla-daemon@pixie.qos.ch