[logback-user] Inconsistency in printing Throwable instances?
Abraham Lin
abraham.lin at post.harvard.edu
Mon Jul 16 23:24:49 CEST 2012
Hi Ceki,
Thanks for the response. Here's a trivial example:
public class Main {
public static void main( String[] args ) {
org.slf4j.Logger logger = org.slf4j.LoggerFactory
.getLogger( Main.class );
Exception e1 = new CustomException( );
e1.printStackTrace( System.out );
logger.info( "", e1 );
System.out.println( );
Exception e2 = new CustomException( "Test message" );
e2.printStackTrace( System.out );
logger.info( "", e2 );
}
static class CustomException extends Exception {
CustomException( ) {}
CustomException( String message ) { super( message ); }
@Override
public String toString( ) {
return super.toString( ) + " (from toString)";
}
}
}
Running the above yields this output:
com.example.logback.Main$CustomException (from toString)
at com.example.logback.Main.main(Main.java:7)
17:19:50.445 [main] INFO com.example.logback.Main -
com.example.logback.Main$CustomException: null
at com.example.logback.Main.main(Main.java:7) ~[classes/:na]
com.example.logback.Main$CustomException: Test message (from toString)
at com.example.logback.Main.main(Main.java:13)
17:19:50.451 [main] INFO com.example.logback.Main -
com.example.logback.Main$CustomException: Test message
at com.example.logback.Main.main(Main.java:13) ~[classes/:na]
What do you think?
-Abraham
On Mon, Jul 16, 2012 at 5:02 PM, ceki <ceki at qos.ch> wrote:
> Hi Abraham,
>
> Can you provide an example of the difference?
> --
> Ceki
> http://tinyurl.com/proLogback
>
>
> On 16.07.2012 22:32, Abraham Lin wrote:
>
>> Hi,
>>
>> In comparing the outputs of Throwable#printStackTrace and logback, I
>> found an inconsistency in how the Throwable instances are printed. While
>> the former delegates to the Throwable instance's #toString method, the
>> latter (partially) re-implements the default implementation in
>> Throwable, which means that data contained in the #toString methods of
>> Throwable subclasses is discarded. While this is easy to work around in
>> my own code, there is still a problem when working with third-party
>> libraries.
>>
>> Is there a configuration option that would allow me to specify my own
>> IThrowableProxy implementation? (I couldn't find any pages describing
>> the extension points and how to activate them.) Or would it be more
>> appropriate to modify the ThrowableProxyUtil class so that it behaves
>> similarly to #printStackTrace? Any ideas would be greatly appreciated.
>>
>> Thanks in advance!
>>
>> -Abraham
>>
>
>
>
> ______________________________**_________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://mailman.qos.ch/mailman/**listinfo/logback-user<http://mailman.qos.ch/mailman/listinfo/logback-user>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20120716/8b06ab0f/attachment.html>
More information about the Logback-user
mailing list