[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