private synchronized void logThrowable ( final Level level , final String message , final Throwable t ) { if ( t != null ) { log ( "\r\n[" + System . currentTimeMillis ( ) + "]\t" + message ) ; log ( "\r\n" + t ) ; log ( "\r\n" ) ; for ( StackTraceElement st : t . getStackTrace ( ) ) { log ( "\t" + st . toString ( ) + "\r\n" ) ; } Throwable c = t . getCause ( ) ; if ( c != null ) { log ( "Caused by:\t" + c + "\r\n" ) ; for ( StackTraceElement st : c . getStackTrace ( ) ) { log ( "\t" + st . toString ( ) + "\r\n" ) ; } } log ( "\r\n" ) ; this . flush ( ) ; } }
The occurred error or exception with the related log level and message will be logged by this method .