Skip to content

Commit cb836a5

Browse files
committed
Logging improvements
- each frame is logged only once - server address is now p art of the logging message
1 parent 41f6c98 commit cb836a5

File tree

3 files changed

+37
-8
lines changed

3 files changed

+37
-8
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ protected ByteBuf extractFrame( ChannelHandlerContext ctx, ByteBuf buffer, int i
6464
{
6565
int originalReaderIndex = buffer.readerIndex();
6666
int readerIndexWithChunkHeader = originalReaderIndex - INITIAL_BYTES_TO_STRIP;
67-
int lengthWithChunkHeader = INITIAL_BYTES_TO_STRIP + buffer.readableBytes();
67+
int lengthWithChunkHeader = INITIAL_BYTES_TO_STRIP + length;
6868
String hexDump = ByteBufUtil.hexDump( buffer, readerIndexWithChunkHeader, lengthWithChunkHeader );
6969
log.trace( "S: %s", hexDump );
7070
}

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

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import io.netty.channel.Channel;
2222

23+
import org.neo4j.driver.internal.BoltServerAddress;
2324
import org.neo4j.driver.internal.async.ChannelAttributes;
2425
import org.neo4j.driver.v1.Logger;
2526
import org.neo4j.driver.v1.Logging;
@@ -32,6 +33,7 @@ public class ChannelActivityLogger extends ReformattedLogger
3233
private final String localChannelId;
3334

3435
private String dbConnectionId;
36+
private String serverAddress;
3537

3638
public ChannelActivityLogger( Channel channel, Logging logging, Class<?> owner )
3739
{
@@ -54,12 +56,9 @@ protected String reformat( String message )
5456
}
5557

5658
String dbConnectionId = getDbConnectionId();
59+
String serverAddress = getServerAddress();
5760

58-
if ( localChannelId != null && dbConnectionId != null )
59-
{
60-
return format( "[0x%s][%s] %s", localChannelId, dbConnectionId, message );
61-
}
62-
return format( "[0x%s][] %s", localChannelId, message );
61+
return format( "[0x%s][%s][%s] %s", localChannelId, valueOrEmpty( serverAddress ), valueOrEmpty( dbConnectionId ), message );
6362
}
6463

6564
private String getDbConnectionId()
@@ -70,4 +69,21 @@ private String getDbConnectionId()
7069
}
7170
return dbConnectionId;
7271
}
72+
73+
private String getServerAddress()
74+
{
75+
76+
if ( serverAddress == null )
77+
{
78+
BoltServerAddress serverAddress = ChannelAttributes.serverAddress( channel );
79+
this.serverAddress = serverAddress != null ? serverAddress.toString() : null;
80+
}
81+
82+
return serverAddress;
83+
}
84+
85+
private String valueOrEmpty( String value )
86+
{
87+
return value != null ? value : "";
88+
}
7389
}

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

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.netty.channel.embedded.EmbeddedChannel;
2222
import org.junit.jupiter.api.Test;
2323

24+
import org.neo4j.driver.internal.BoltServerAddress;
2425
import org.neo4j.driver.internal.async.ChannelAttributes;
2526
import org.neo4j.driver.v1.Logging;
2627

@@ -46,7 +47,19 @@ void shouldReformatWithChannelId()
4647

4748
String reformatted = activityLogger.reformat( "Hello!" );
4849

49-
assertEquals( "[0x" + channel.id() + "][] Hello!", reformatted );
50+
assertEquals( "[0x" + channel.id() + "][][] Hello!", reformatted );
51+
}
52+
53+
@Test
54+
void shouldReformatWithChannelIdAndServerAddress()
55+
{
56+
EmbeddedChannel channel = new EmbeddedChannel();
57+
ChannelAttributes.setServerAddress( channel, new BoltServerAddress( "somewhere", 1234 ) );
58+
ChannelActivityLogger activityLogger = new ChannelActivityLogger( channel, Logging.none(), getClass() );
59+
60+
String reformatted = activityLogger.reformat( "Hello!" );
61+
62+
assertEquals( "[0x" + channel.id() + "][somewhere:1234][] Hello!", reformatted );
5063
}
5164

5265
@Test
@@ -58,6 +71,6 @@ void shouldReformatWithChannelIdAndConnectionId()
5871

5972
String reformatted = activityLogger.reformat( "Hello!" );
6073

61-
assertEquals( "[0x" + channel.id() + "][bolt-12345] Hello!", reformatted );
74+
assertEquals( "[0x" + channel.id() + "][][bolt-12345] Hello!", reformatted );
6275
}
6376
}

0 commit comments

Comments
 (0)