[logback-user] log4j to logback question

Steve Cohen scohen at javactivity.org
Sat Nov 5 16:59:15 CET 2011


To answer my own question, a partial answer is the "caller" formatting 
specifier.  getLocationInformation() may or may not have been necessary, 
but with "caller" it no longer is.

However,

a common pattern is to funnel logging requests through a LogHelper class 
to add some additional functionalities not supported by log4j or 
logback.  The LogHelper may throw something on the MDC or do some other 
preprocessing.  My LogHelper also adds methods that apply 
String.format() on the parameters a la printf.

Whatever.  Many such things are possible.

The problem with the caller specifier is that the  LogHelper calls 
(which are nested) are what it displays, not the true caller in the 
non-logHelper code.  The depth parameter allows you to eventually see 
the "real" code but really we want the logHelper to disappear from the 
display.  That is display only one element - the one we want.

I've written a class similar to the 
ch.qos.logback.classic.pattern.CallerDataConverter (actually I just 
grabbed the source and modified) so that instead of a depth I pass the 
FQCN of the LogHelper class and the convert method skips all elements 
until it finds one that doesn't match this, and it displays that.
This works very well, but it would be nice if logback offered a better 
way to extend its framework to support this kind of conversion.  The 
only reason I had to resort to reuse by copying instead of reuse by 
inheritance is that CallerDataConverter has some private methods that I 
needed to call from convert().  If these were protected, it would 
provide much greater flexibility.

Logback should consider supporting such functionality.




On 11/02/2011 09:54 PM, Steve Cohen wrote:
> how would I replace log4j's LoggingEvent.getLocationInformation() in
> logback?
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/logback-user
>
>



More information about the Logback-user mailing list