[logback-dev] [JIRA] Commented: (LBCLASSIC-305) Logger does not implement LocationAwareLogger correctly with Wrapper class

Steve Cohen (JIRA) noreply-jira at qos.ch
Mon Nov 7 15:46:14 CET 2011


    [ http://jira.qos.ch/browse/LBCLASSIC-305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12275#action_12275 ] 

Steve Cohen commented on LBCLASSIC-305:
---------------------------------------

After stepping through code it seems that the problem is that when filtered through LocationAwareLogger.log(), the new Throwable() call does not fill in a correct stack trace, but when going through a method such as Logger.debug(), the call to new Throwable() DOES produce a correct stack trace (albeit non-location-aware).  This is why my original bandaid in see http://jira.qos.ch/browse/LBCORE-233) works, but this does not.

Hard to tell what's going on here because Throwable.fillInStackTrace() is native code.  However, I don't suspect platform implementation because this issue was originally noticed (see http://jira.qos.ch/browse/LBCORE-233) on a Windows XP platform using Sun Java 1.6, whereas this test was on Ubuntu Linux using Sun Java 1.6.

> Logger does not implement LocationAwareLogger correctly with Wrapper class 
> ---------------------------------------------------------------------------
>
>                 Key: LBCLASSIC-305
>                 URL: http://jira.qos.ch/browse/LBCLASSIC-305
>             Project: logback-classic
>          Issue Type: Bug
>    Affects Versions: 1.0.0
>            Reporter: Steve Cohen
>            Assignee: Logback dev list
>         Attachments: logback-bug.zip
>
>
> As shown in the attached project, we are logging using Logback classic through a wrapper class (LogHelper), with formatting specified by the %caller format specifier.  Instead of showing the desired actual caller of the LogHelper.debug() method, the output shows as the caller, the caller of the caller of the logHelper.
> I'm expecting: 
> 2011-11-06 18:49:59,650 DEBUG [main] Caller+0	 at org.javactivity.A.<init>(A.java:8)
>  - Constructor of A
> 2011-11-06 18:49:59,654 DEBUG [main] Caller+0	 at org.javactivity.B.<init>(B.java:7)
>  - Constructor of B
> Instead I get:
> 2011-11-06 18:49:59,650 DEBUG [main] ?#?:?
>  - Constructor of A
> 2011-11-06 18:49:59,654 DEBUG [main] Caller+0	 at org.javactivity.A.<init>(A.java:9)
>  - Constructor of B

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the logback-dev mailing list