Skip to content

Commit

Permalink
Update QueryLoggerIT queries log file check.
Browse files Browse the repository at this point in the history
  • Loading branch information
MishaDemianenko committed Mar 7, 2017
1 parent 680850f commit 29c380e
Showing 1 changed file with 23 additions and 13 deletions.
Expand Up @@ -28,22 +28,25 @@
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;


import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.ResourceIterator; import org.neo4j.graphdb.ResourceIterator;
import org.neo4j.graphdb.Result; import org.neo4j.graphdb.Result;
import org.neo4j.graphdb.factory.GraphDatabaseBuilder; import org.neo4j.graphdb.factory.GraphDatabaseBuilder;
import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.fs.FileSystemAbstraction;
import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.kernel.configuration.Settings; import org.neo4j.kernel.configuration.Settings;
import org.neo4j.kernel.enterprise.api.security.EnterpriseSecurityContext; import org.neo4j.kernel.enterprise.api.security.EnterpriseSecurityContext;
import org.neo4j.kernel.impl.coreapi.InternalTransaction; import org.neo4j.kernel.impl.coreapi.InternalTransaction;
Expand Down Expand Up @@ -294,16 +297,13 @@ public void disabledQueryLogRotation() throws Exception
public void queryLogRotation() throws Exception public void queryLogRotation() throws Exception
{ {
final File logsDirectory = new File( testDirectory.graphDbDir(), "logs" ); final File logsDirectory = new File( testDirectory.graphDbDir(), "logs" );
final File logFilename = new File( logsDirectory, "query.log" );
final File shiftedLogFilename1 = new File( logsDirectory, "query.log.1" );
final File shiftedLogFilename2 = new File( logsDirectory, "query.log.2" );
GraphDatabaseService database = databaseBuilder.setConfig( GraphDatabaseSettings.log_queries, Settings.TRUE ) GraphDatabaseService database = databaseBuilder.setConfig( GraphDatabaseSettings.log_queries, Settings.TRUE )
.setConfig( GraphDatabaseSettings.logs_directory, logsDirectory.getPath() ) .setConfig( GraphDatabaseSettings.logs_directory, logsDirectory.getPath() )
.setConfig( GraphDatabaseSettings.log_queries_rotation_threshold, "1" ) .setConfig( GraphDatabaseSettings.log_queries_rotation_threshold, "1" )
.newGraphDatabase(); .newGraphDatabase();


// Logging is done asynchronously, and it turns out it's really hard to make it all work the same on Linux // Logging is done asynchronously, and it turns out it's really hard to make it all work the same on Linux
// and on Windows, so just write maaaaany times to make sure we rotate several times. // and on Windows, so just write many times to make sure we rotate several times.


for ( int i = 0; i < 100; i++ ) for ( int i = 0; i < 100; i++ )
{ {
Expand All @@ -312,14 +312,12 @@ public void queryLogRotation() throws Exception


database.shutdown(); database.shutdown();


List<String> lines = readAllLines( logFilename ); File[] queryLogs = fileSystem.get().listFiles( logsDirectory, ( dir, name ) -> name.startsWith( "query.log" ) );
assertTrue( "Expected log file to have at least one log entry", lines.size() >= 1 ); List<String> loggedQueries = Arrays.stream( queryLogs )

.map( this::readAllLinesSilent )
lines = readAllLines( shiftedLogFilename1 ); .flatMap( Collection::stream )
assertTrue( "Expected shifted log file to have at least one log entry", lines.size() >= 1 ); .collect( Collectors.toList() );

assertTrue( "Expected log file to have at least one log entry", loggedQueries.size() >= 1 );
lines = readAllLines( shiftedLogFilename2 );
assertTrue( "Expected second shifted log file to have at least one log entry", lines.size() >= 1 );
} }


private void executeQueryAndShutdown( GraphDatabaseService database ) private void executeQueryAndShutdown( GraphDatabaseService database )
Expand All @@ -334,6 +332,18 @@ private void executeQueryAndShutdown( GraphDatabaseService database, String quer
database.shutdown(); database.shutdown();
} }


private List<String> readAllLinesSilent( File logFilename )
{
try
{
return readAllLines( fileSystem.get(), logFilename );
}
catch ( IOException e )
{
throw new UncheckedIOException( e );
}
}

private List<String> readAllLines( File logFilename ) throws IOException private List<String> readAllLines( File logFilename ) throws IOException
{ {
return readAllLines( fileSystem.get(), logFilename ); return readAllLines( fileSystem.get(), logFilename );
Expand Down

0 comments on commit 29c380e

Please sign in to comment.