[logback-user] Throwable with Java 1.6 Style?
Ceki Gulcu
listid at qos.ch
Sat Sep 13 12:59:16 CEST 2008
Thorbjørn Ravn Andersen wrote:
> Ceki Gulcu skrev den 12-09-2008 20:47:
>> Eric Faden wrote:
>>
>>> Why is there no way to do something like...
>>>
>>> logger.error("blah blah {} blah", exception, object);
>>>
>>> It seems that the only way to pass that in to the logger is to use
>>>
>>> if (logger.isErrorEnabled()) logger.error("blah blah " +
>>> object.toString() + " blah", e);
>>>
>>> or am I mistaken? It seems that this would be a useful function to make
>>> available.
>>>
>> No, you are right. Blame the SLF4J API. Those morons!
>>
>>
> I think I'd better elaborate a bit on Ceki's rather brief explanation :)
>
> It is notoriously hard to evolutionarily improve an API and get it
> exactly right at all the intermediate steps.
>
> The question is how this _could_ be implemented at all without starting
> looking at the individual objects in a varargs and do stuff depending on
> their type (essentially putting the method selection in javac based on
> method signature inside slf4j instead), as there is the vararg putting
> stuff in a Object array (and exceptions are objects).
>
> If then the last argument is an exception THEN it should be interpreted
> traditionally with a stacktrace, but then you cannot stuff it in a
> placeholder (to get the string representation in the message).
>
> What this means is basically that the current syntax breaks down, and
> perhaps that another approach is appropriate. Feel free to open a JIRA
> issue if you feel this is important enough.
Pour your information, Joern Huxhorn has already filed a bug report on this topic
http://bugzilla.slf4j.org/show_bug.cgi?id=70
--
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch
More information about the Logback-user
mailing list