|
18 | 18 | */ |
19 | 19 | package org.neo4j.driver.internal.logging; |
20 | 20 |
|
| 21 | +import java.io.PrintWriter; |
| 22 | +import java.io.StringWriter; |
21 | 23 | import java.time.LocalDateTime; |
22 | 24 | import java.util.Objects; |
23 | 25 | import java.util.logging.ConsoleHandler; |
@@ -70,22 +72,33 @@ public ConsoleLogger( String name, Level level ) |
70 | 72 | } |
71 | 73 |
|
72 | 74 | handler = new ConsoleHandler(); |
73 | | - handler.setFormatter( new ShortFormatter() ); |
| 75 | + handler.setFormatter( new ConsoleFormatter() ); |
74 | 76 | handler.setLevel( level ); |
75 | 77 | logger.addHandler( handler ); |
76 | 78 | logger.setLevel( level ); |
77 | 79 | } |
78 | 80 | } |
79 | 81 |
|
80 | | - private static class ShortFormatter extends Formatter |
| 82 | + private static class ConsoleFormatter extends Formatter |
81 | 83 | { |
82 | 84 | @Override |
83 | 85 | public String format( LogRecord record ) |
84 | 86 | { |
| 87 | + String throwable = ""; |
| 88 | + if ( record.getThrown() != null ) |
| 89 | + { |
| 90 | + StringWriter sw = new StringWriter(); |
| 91 | + PrintWriter pw = new PrintWriter( sw ); |
| 92 | + pw.println(); |
| 93 | + record.getThrown().printStackTrace( pw ); |
| 94 | + pw.close(); |
| 95 | + throwable = sw.toString(); |
| 96 | + } |
85 | 97 | return LocalDateTime.now().format( ISO_LOCAL_DATE_TIME ) + " " + |
86 | 98 | record.getLevel() + " " + |
87 | 99 | record.getLoggerName() + " - " + |
88 | 100 | formatMessage( record ) + |
| 101 | + throwable + |
89 | 102 | "\n"; |
90 | 103 | } |
91 | 104 | } |
|
0 commit comments