Skip to content

Commit 8d29fa0

Browse files
committed
Introduce support for logging debug entries with Throwable
1 parent f31c0f0 commit 8d29fa0

File tree

10 files changed

+63
-7
lines changed

10 files changed

+63
-7
lines changed

driver/clirr-ignored-differences.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,10 @@
1919
<method>java.lang.String agent()</method>
2020
</difference>
2121

22+
<difference>
23+
<className>org/neo4j/driver/Logger</className>
24+
<differenceType>7012</differenceType>
25+
<method>void debug(java.lang.String, java.lang.Throwable)</method>
26+
</difference>
27+
2228
</differences>

driver/src/main/java/org/neo4j/driver/Logger.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,14 @@ public interface Logger
103103
*/
104104
void debug( String message, Object... params );
105105

106+
/**
107+
* Logs debug message with throwable.
108+
*
109+
* @param message the message to log
110+
* @param throwable the throwable to include into the log entry
111+
*/
112+
void debug( String message, Throwable throwable );
113+
106114
/**
107115
* Logs binary sent and received by this driver.
108116
* It is only enabled when {@link Logger#isTraceEnabled()} returns {@code true}.

driver/src/main/java/org/neo4j/driver/internal/async/inbound/InboundMessageDispatcher.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public void handleChannelError( Throwable error )
186186
handler.onFailure( currentError );
187187
}
188188

189-
log.debug( "Closing channel because of a failure '%s'", error );
189+
log.debug( "Closing channel because of a failure", error );
190190
channel.close();
191191
}
192192

driver/src/main/java/org/neo4j/driver/internal/logging/DevNullLogger.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ public void debug( String message, Object... params )
5353
{
5454
}
5555

56+
@Override
57+
public void debug( String message, Throwable throwable )
58+
{
59+
}
60+
5661
@Override
5762
public void trace( String message, Object... params )
5863
{

driver/src/main/java/org/neo4j/driver/internal/logging/JULogger.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,25 @@ public void warn( String message, Throwable cause )
6363
@Override
6464
public void debug( String format, Object... params )
6565
{
66-
if( debugEnabled )
66+
if ( debugEnabled )
6767
{
6868
delegate.log( Level.FINE, String.format( format, params ) );
6969
}
7070
}
7171

72+
@Override
73+
public void debug( String message, Throwable throwable )
74+
{
75+
if ( debugEnabled )
76+
{
77+
delegate.log( Level.FINE, message, throwable );
78+
}
79+
}
80+
7281
@Override
7382
public void trace( String format, Object... params )
7483
{
75-
if( traceEnabled )
84+
if ( traceEnabled )
7685
{
7786
delegate.log( Level.FINEST, String.format( format, params ) );
7887
}

driver/src/main/java/org/neo4j/driver/internal/logging/ReformattedLogger.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,15 @@ public void debug( String message, Object... params )
6464
}
6565
}
6666

67+
@Override
68+
public void debug( String message, Throwable throwable )
69+
{
70+
if ( isDebugEnabled() )
71+
{
72+
delegate.debug( reformat( message ), throwable );
73+
}
74+
}
75+
6776
@Override
6877
public void trace( String message, Object... params )
6978
{

driver/src/main/java/org/neo4j/driver/internal/logging/Slf4jLogger.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,15 @@ public void debug( String message, Object... params )
7676
}
7777
}
7878

79+
@Override
80+
public void debug( String message, Throwable throwable )
81+
{
82+
if ( isDebugEnabled() )
83+
{
84+
delegate.debug( message, throwable );
85+
}
86+
}
87+
7988
@Override
8089
public void trace( String message, Object... params )
8190
{

driver/src/test/java/org/neo4j/driver/integration/LoggingIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ void logShouldRecordDebugAndTraceInfo()
6868
}
6969

7070
// Then
71-
verify( logger, atLeastOnce() ).debug( anyString(), any() );
71+
verify( logger, atLeastOnce() ).debug( anyString(), any( Object[].class ) );
7272
verify( logger, atLeastOnce() ).trace( anyString(), any() );
7373
}
7474
}

driver/src/test/java/org/neo4j/driver/internal/DirectDriverBoltKitIT.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@
7878
import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING;
7979
import static org.neo4j.driver.util.StubServer.INSECURE_CONFIG;
8080
import static org.neo4j.driver.util.StubServer.insecureBuilder;
81-
import static org.neo4j.driver.util.StubServer.start;
8281
import static org.neo4j.driver.util.TestUtil.asOrderedSet;
8382
import static org.neo4j.driver.util.TestUtil.await;
8483

@@ -181,7 +180,7 @@ void shouldLogConnectionIdInDebugMode() throws Exception
181180
assertEquals( asList( "Foo", "Bar" ), names );
182181

183182
ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass( String.class );
184-
verify( logger, atLeastOnce() ).debug( messageCaptor.capture(), any() );
183+
verify( logger, atLeastOnce() ).debug( messageCaptor.capture(), any( Object[].class ) );
185184

186185
Optional<String> logMessageWithConnectionId = messageCaptor.getAllValues()
187186
.stream()

driver/src/test/java/org/neo4j/driver/internal/logging/PrefixedLoggerTest.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,18 @@ void shouldNotDelegateDebugLogWhenDebugDisabled()
8080
PrefixedLogger logger = new PrefixedLogger( delegate );
8181
logger.debug( MESSAGE );
8282

83-
verify( delegate, never() ).debug( anyString(), any() );
83+
verify( delegate, never() ).debug( anyString(), any( Object[].class ) );
84+
}
85+
86+
@Test
87+
void shouldNotDelegateDebugLogWithThrowableWhenDebugDisabled()
88+
{
89+
Logger delegate = newLoggerMock();
90+
91+
PrefixedLogger logger = new PrefixedLogger( delegate );
92+
logger.debug( MESSAGE, mock( Throwable.class ) );
93+
94+
verify( delegate, never() ).debug( anyString(), any( Throwable.class ) );
8495
}
8596

8697
@Test

0 commit comments

Comments
 (0)