[logback-user] Inconsistency in printing Throwable instances?
ceki
ceki at qos.ch
Mon Jul 16 23:44:19 CEST 2012
I think this is a bug in ThrowableProxy. Could you please create a jira
issue for this? Thank you.
On 16.07.2012 23:24, Abraham Lin wrote:
> 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 <http://logger.info>( "", e1 );
> System.out.println( );
> Exception e2 = new CustomException( "Test message" );
> e2.printStackTrace( System.out );
> logger.info <http://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 <mailto: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
>
>
>
--
Ceki
http://tinyurl.com/proLogback
More information about the Logback-user
mailing list