Skip to content

Commit cd569f5

Browse files
authored
Merge pull request #557 from PetrJanouch/1.7_logging_improvements
Logging improvements:
2 parents 41f6c98 + 04aeeb6 commit cd569f5

File tree

4 files changed

+41
-8
lines changed

4 files changed

+41
-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: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,21 @@
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;
2627

2728
import static java.lang.String.format;
29+
import static org.neo4j.driver.internal.util.Format.valueOrEmpty;
2830

2931
public class ChannelActivityLogger extends ReformattedLogger
3032
{
3133
private final Channel channel;
3234
private final String localChannelId;
3335

3436
private String dbConnectionId;
37+
private String serverAddress;
3538

3639
public ChannelActivityLogger( Channel channel, Logging logging, Class<?> owner )
3740
{
@@ -54,12 +57,9 @@ protected String reformat( String message )
5457
}
5558

5659
String dbConnectionId = getDbConnectionId();
60+
String serverAddress = getServerAddress();
5761

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 );
62+
return format( "[0x%s][%s][%s] %s", localChannelId, valueOrEmpty( serverAddress ), valueOrEmpty( dbConnectionId ), message );
6363
}
6464

6565
private String getDbConnectionId()
@@ -70,4 +70,16 @@ private String getDbConnectionId()
7070
}
7171
return dbConnectionId;
7272
}
73+
74+
private String getServerAddress()
75+
{
76+
77+
if ( serverAddress == null )
78+
{
79+
BoltServerAddress serverAddress = ChannelAttributes.serverAddress( channel );
80+
this.serverAddress = serverAddress != null ? serverAddress.toString() : null;
81+
}
82+
83+
return serverAddress;
84+
}
7385
}

driver/src/main/java/org/neo4j/driver/internal/util/Format.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,12 @@ private static <V> String keyValueString( Entry<String,V> entry )
6363
{
6464
return String.format( "%s: %s", entry.getKey(), String.valueOf( entry.getValue() ) );
6565
}
66+
67+
/**
68+
* Returns the submitted value if it is not null or an empty string if it is.
69+
*/
70+
public static String valueOrEmpty( String value )
71+
{
72+
return value != null ? value : "";
73+
}
6674
}

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)