Skip to content

Commit

Permalink
Use pretty printer for logging
Browse files Browse the repository at this point in the history
  • Loading branch information
pontusmelke committed Sep 14, 2017
1 parent 8f72b2d commit 34f38cb
Show file tree
Hide file tree
Showing 11 changed files with 276 additions and 178 deletions.
Expand Up @@ -23,6 +23,7 @@
import java.util.function.Supplier; import java.util.function.Supplier;


import org.neo4j.kernel.api.exceptions.Status; import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.values.virtual.MapValue;


public interface BoltMessageLogger public interface BoltMessageLogger
{ {
Expand All @@ -42,7 +43,7 @@ public interface BoltMessageLogger


void logInit( String userAgent ); void logInit( String userAgent );


void logRun( String statement, Supplier<Map<String, Object>> parametersSupplier ); void logRun( String statement, Supplier<MapValue> parametersSupplier );


void logPullAll(); void logPullAll();


Expand All @@ -52,7 +53,7 @@ public interface BoltMessageLogger


void logReset(); void logReset();


void logSuccess( Supplier<String> metadataSupplier ); void logSuccess( Supplier<MapValue> metadataSupplier );


void logFailure( Status status ); void logFailure( Status status );


Expand Down
Expand Up @@ -20,18 +20,21 @@


package org.neo4j.bolt.logging; package org.neo4j.bolt.logging;


import io.netty.channel.Channel;
import io.netty.util.AttributeKey;
import org.codehaus.jackson.map.ObjectMapper;

import java.io.IOException; import java.io.IOException;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import java.util.function.BiConsumer; import java.util.function.BiConsumer;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Supplier; import java.util.function.Supplier;


import io.netty.channel.Channel;
import io.netty.util.AttributeKey;
import org.codehaus.jackson.map.ObjectMapper;

import org.neo4j.kernel.api.exceptions.Status; import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.values.AnyValue;
import org.neo4j.values.utils.PrettyPrinter;
import org.neo4j.values.virtual.MapValue;


import static java.lang.String.format; import static java.lang.String.format;


Expand Down Expand Up @@ -107,9 +110,9 @@ public void logInit( String userAgent )
} }


@Override @Override
public void logRun( String statement, Supplier<Map<String, Object>> parametersSupplier ) public void logRun( String statement, Supplier<MapValue> parametersSupplier )
{ {
clientEvent( "RUN", () -> format( "%s %s", json(statement), json( parametersSupplier.get() ) ) ); clientEvent( "RUN", () -> format( "%s %s", json( statement ), formatAnyValue( parametersSupplier.get() ) ) );
} }


@Override @Override
Expand Down Expand Up @@ -137,9 +140,9 @@ public void logReset()
} }


@Override @Override
public void logSuccess( Supplier<String> metadataSupplier ) public void logSuccess( Supplier<MapValue> metadataSupplier )
{ {
serverEvent( "SUCCESS", () -> json( metadataSupplier.get() ) ); serverEvent( "SUCCESS", () -> formatAnyValue( metadataSupplier.get() ) );
} }


@Override @Override
Expand Down Expand Up @@ -206,4 +209,10 @@ private static String json( Object arg )
} }
} }


private static String formatAnyValue( AnyValue mapValue )
{
PrettyPrinter printer = new PrettyPrinter();
mapValue.writeTo( printer );
return printer.value();
}
} }
Expand Up @@ -23,6 +23,7 @@
import java.util.function.Supplier; import java.util.function.Supplier;


import org.neo4j.kernel.api.exceptions.Status; import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.values.virtual.MapValue;


public class NullBoltMessageLogger implements BoltMessageLogger public class NullBoltMessageLogger implements BoltMessageLogger
{ {
Expand Down Expand Up @@ -78,7 +79,7 @@ public void logInit( String userAgent )
} }


@Override @Override
public void logRun( String statement, Supplier<Map<String, Object>> parametersSupplier ) public void logRun( String statement, Supplier<MapValue> parametersSupplier )
{ {
} }


Expand All @@ -103,7 +104,7 @@ public void logReset()
} }


@Override @Override
public void logSuccess( Supplier<String> metadataSupplier ) public void logSuccess( Supplier<MapValue> metadataSupplier )
{ {
} }


Expand Down
Expand Up @@ -23,13 +23,14 @@
import java.util.function.Supplier; import java.util.function.Supplier;


import org.neo4j.bolt.logging.BoltMessageLogger; import org.neo4j.bolt.logging.BoltMessageLogger;
import org.neo4j.cypher.internal.javacompat.BaseToObjectValueWriter;
import org.neo4j.cypher.result.QueryResult; import org.neo4j.cypher.result.QueryResult;
import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.spatial.Point; import org.neo4j.graphdb.spatial.Point;
import org.neo4j.helpers.BaseToObjectValueWriter;
import org.neo4j.kernel.api.exceptions.Status; import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.values.AnyValue; import org.neo4j.values.AnyValue;
import org.neo4j.values.utils.PrettyPrinter;
import org.neo4j.values.virtual.MapValue; import org.neo4j.values.virtual.MapValue;


import static org.neo4j.bolt.v1.messaging.BoltResponseMessage.FAILURE; import static org.neo4j.bolt.v1.messaging.BoltResponseMessage.FAILURE;
Expand Down Expand Up @@ -84,7 +85,7 @@ public void onRecord( QueryResult.Record item ) throws IOException
@Override @Override
public void onSuccess( MapValue metadata ) throws IOException public void onSuccess( MapValue metadata ) throws IOException
{ {
messageLogger.logSuccess( metadataSupplier( metadata ) ); messageLogger.logSuccess( () -> metadata );
packer.packStructHeader( 1, SUCCESS.signature() ); packer.packStructHeader( 1, SUCCESS.signature() );
packer.packRawMap( metadata ); packer.packRawMap( metadata );
onMessageComplete.onMessageComplete(); onMessageComplete.onMessageComplete();
Expand All @@ -94,9 +95,9 @@ private Supplier<String> metadataSupplier( MapValue metadata )
{ {
return () -> return () ->
{ {
MapToObjectWriter writer = new MapToObjectWriter(); PrettyPrinter printer = new PrettyPrinter();
metadata.writeTo( writer ); metadata.writeTo( printer );
return writer.value().toString(); return printer.value();
}; };
} }


Expand Down
Expand Up @@ -19,8 +19,6 @@
*/ */
package org.neo4j.bolt.logging; package org.neo4j.bolt.logging;


import java.net.InetSocketAddress;

import io.netty.channel.Channel; import io.netty.channel.Channel;
import io.netty.util.Attribute; import io.netty.util.Attribute;
import org.junit.Before; import org.junit.Before;
Expand All @@ -29,16 +27,21 @@
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner; import org.mockito.runners.MockitoJUnitRunner;


import java.net.InetSocketAddress;

import org.neo4j.bolt.v1.runtime.Neo4jError; import org.neo4j.bolt.v1.runtime.Neo4jError;
import org.neo4j.helpers.ValueUtils;
import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.kernel.DeadlockDetectedException; import org.neo4j.kernel.DeadlockDetectedException;
import org.neo4j.values.virtual.VirtualValues;


import static java.util.Collections.singletonMap; import static java.util.Collections.singletonMap;

import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;

import static org.neo4j.bolt.logging.BoltMessageLoggerImpl.CORRELATION_ATTRIBUTE_KEY; import static org.neo4j.bolt.logging.BoltMessageLoggerImpl.CORRELATION_ATTRIBUTE_KEY;
import static org.neo4j.helpers.ValueUtils.asMapValue;
import static org.neo4j.helpers.collection.MapUtil.map;


@RunWith( MockitoJUnitRunner.class ) @RunWith( MockitoJUnitRunner.class )
public class BoltMessageLoggerImplTest public class BoltMessageLoggerImplTest
Expand Down Expand Up @@ -118,9 +121,9 @@ public void logInit() throws Exception
public void logRun() throws Exception public void logRun() throws Exception
{ {
// when // when
boltMessageLogger.logRun( "RETURN 42", () -> singletonMap( "param1", "value" ) ); boltMessageLogger.logRun( "RETURN 42", () -> asMapValue( singletonMap( "param1", "value" ) ) );
// then // then
verify( boltMessageLog ).info( REMOTE_ADDRESS, CORRELATION_ID, "C RUN \"RETURN 42\" {\"param1\":\"value\"}" ); verify( boltMessageLog ).info( REMOTE_ADDRESS, CORRELATION_ID, "C RUN \"RETURN 42\" {param1: \"value\"}" );
} }


@Test @Test
Expand Down Expand Up @@ -154,9 +157,9 @@ public void logReset() throws Exception
public void logSuccess() throws Exception public void logSuccess() throws Exception
{ {
// when // when
boltMessageLogger.logSuccess( () -> "metadata" ); boltMessageLogger.logSuccess( () -> asMapValue( map( "key", "value" ) ) );
// then // then
verify( boltMessageLog ).info( REMOTE_ADDRESS, CORRELATION_ID, "S SUCCESS \"metadata\"" ); verify( boltMessageLog ).info( REMOTE_ADDRESS, CORRELATION_ID, "S SUCCESS {key: \"value\"}" );
} }


@Test @Test
Expand Down
Expand Up @@ -66,7 +66,7 @@ enum ArrayType


default void writeUTF8( byte[] bytes, int offset, int length ) throws E default void writeUTF8( byte[] bytes, int offset, int length ) throws E
{ {
writeString( new String(bytes, offset, length, StandardCharsets.UTF_8) ); writeString( new String( bytes, offset, length, StandardCharsets.UTF_8 ) );
} }


default void writeString( char[] value ) throws E default void writeString( char[] value ) throws E
Expand Down

0 comments on commit 34f38cb

Please sign in to comment.