Search in sources :

Example 71 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class MessageDecoderTest method shouldLogContentOfTheMessageOnError.

@ParameterizedTest
@MethodSource("argumentsProvider")
public void shouldLogContentOfTheMessageOnError(Neo4jPack packerUnderTest) throws Exception {
    this.packerUnderTest = packerUnderTest;
    BoltRequestMessageReader requestMessageReader = mock(BoltRequestMessageReader.class);
    RuntimeException error = new RuntimeException("Hello!");
    doThrow(error).when(requestMessageReader).read(any());
    LogService logService = mock(LogService.class);
    Log log = mock(Log.class);
    when(logService.getInternalLog(MessageDecoder.class)).thenReturn(log);
    channel = new EmbeddedChannel(new MessageDecoder(packerUnderTest::newUnpacker, requestMessageReader, logService));
    byte[] messageBytes = packMessageWithSignature(RunMessage.SIGNATURE);
    var e = assertThrows(RuntimeException.class, () -> channel.writeInbound(Unpooled.wrappedBuffer(messageBytes)));
    assertEquals(error, e);
    assertMessageHexDumpLogged(log, messageBytes);
}
Also used : MessageDecoder(org.neo4j.bolt.transport.pipeline.MessageDecoder) BoltRequestMessageReader(org.neo4j.bolt.messaging.BoltRequestMessageReader) Log(org.neo4j.logging.Log) EmbeddedChannel(io.netty.channel.embedded.EmbeddedChannel) NullLogService(org.neo4j.logging.internal.NullLogService) LogService(org.neo4j.logging.internal.LogService) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 72 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class FailureMessageEncoderTest method shouldLogErrorIfIsFatalError.

@Test
void shouldLogErrorIfIsFatalError() throws Throwable {
    Neo4jPack.Packer packer = mock(Neo4jPack.Packer.class);
    Log log = mock(Log.class);
    FailureMessageEncoder encoder = new FailureMessageEncoder(log);
    // When
    FatalFailureMessage message = new FatalFailureMessage(Status.General.UnknownError, "I am an error message");
    encoder.encode(packer, message);
    // Then
    verify(log).debug("Encoding a fatal failure message to send. Message: %s", message);
}
Also used : FatalFailureMessage(org.neo4j.bolt.v3.messaging.response.FatalFailureMessage) Log(org.neo4j.logging.Log) Neo4jPack(org.neo4j.bolt.packstream.Neo4jPack) Test(org.junit.jupiter.api.Test)

Example 73 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class DefaultDatabaseManagerUpgradeIT method useThrowingMigrationLogProvider.

/**
 * Create a mocked user log provider that will throw provided exception
 * when trying to log on info level on DatabaseMigrator class.
 * This is designed to hook in on MigrationProgressMonitor.started in
 * StoreUpgrader.migrate.
 */
private void useThrowingMigrationLogProvider(Exception e) {
    Log mockedLog = mock(Log.class, RETURNS_MOCKS);
    when(userLogProvider.getLog(DatabaseMigrator.class)).thenReturn(mockedLog);
    Mockito.doThrow(e).when(mockedLog).info(anyString());
}
Also used : Log(org.neo4j.logging.Log)

Example 74 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class AbstractIndexProviderFactory method newInstance.

@Override
public IndexProvider newInstance(ExtensionContext context, Dependencies dependencies) {
    PageCache pageCache = dependencies.pageCache();
    Path databaseDir = context.directory();
    FileSystemAbstraction fs = dependencies.fileSystem();
    Log log = dependencies.getLogService().getInternalLogProvider().getLog(loggingClass());
    Monitors monitors = dependencies.monitors();
    String monitorTag = descriptor().toString();
    monitors.addMonitorListener(new LoggingMonitor(log), monitorTag);
    Config config = dependencies.getConfig();
    var readOnlyChecker = dependencies.readOnlyChecker();
    if (OperationalMode.SINGLE != context.dbmsInfo().operationalMode) {
        // if running as part of cluster indexes should be writable to allow catchup process to accept transactions
        readOnlyChecker = DatabaseReadOnlyChecker.writable();
    }
    RecoveryCleanupWorkCollector recoveryCleanupWorkCollector = dependencies.recoveryCleanupWorkCollector();
    PageCacheTracer pageCacheTracer = dependencies.pageCacheTracer();
    DatabaseLayout databaseLayout = dependencies.databaseLayout();
    return internalCreate(pageCache, databaseDir, fs, monitors, monitorTag, config, readOnlyChecker, recoveryCleanupWorkCollector, databaseLayout, pageCacheTracer);
}
Also used : Path(java.nio.file.Path) FileSystemAbstraction(org.neo4j.io.fs.FileSystemAbstraction) Log(org.neo4j.logging.Log) LoggingMonitor(org.neo4j.kernel.api.index.LoggingMonitor) Config(org.neo4j.configuration.Config) Monitors(org.neo4j.monitoring.Monitors) PageCacheTracer(org.neo4j.io.pagecache.tracing.PageCacheTracer) DatabaseLayout(org.neo4j.io.layout.DatabaseLayout) RecoveryCleanupWorkCollector(org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector) PageCache(org.neo4j.io.pagecache.PageCache)

Example 75 with Log

use of org.neo4j.logging.Log in project neo4j by neo4j.

the class LoggingPhaseTrackerTest method mustReportPeriod.

@Test
void mustReportPeriod() {
    // given
    AssertableLogProvider logProvider = new AssertableLogProvider(true);
    Log log = logProvider.getLog(IndexPopulationJob.class);
    PhaseTracker phaseTracker = getPhaseTracker(1, log);
    phaseTracker.enterPhase(PhaseTracker.Phase.SCAN);
    // when
    sleep(1000);
    phaseTracker.enterPhase(PhaseTracker.Phase.WRITE);
    // then
    assertThat(logProvider).forClass(IndexPopulationJob.class).forLevel(DEBUG).containsMessages("TIME/PHASE Total: SCAN[totalTime=1s], Last 1 sec: SCAN[totalTime=1s]");
    // when
    sleep(1000);
    phaseTracker.enterPhase(PhaseTracker.Phase.SCAN);
    // then
    assertThat(logProvider).forClass(IndexPopulationJob.class).forLevel(DEBUG).containsMessages("TIME/PHASE Total: SCAN[totalTime=1s], WRITE[totalTime=1s], Last 1 sec: WRITE[totalTime=1s]");
    // when
    sleep(1000);
    phaseTracker.enterPhase(PhaseTracker.Phase.WRITE);
    // then
    assertThat(logProvider).forClass(IndexPopulationJob.class).forLevel(DEBUG).containsMessages("TIME/PHASE Total: " + "SCAN[totalTime=2s, avgTime=1s, minTime=0ns, maxTime=1s, nbrOfReports=2], " + "WRITE[totalTime=1s], " + "Last 1 sec: SCAN[totalTime=1s]");
}
Also used : Log(org.neo4j.logging.Log) NullLog(org.neo4j.logging.NullLog) AssertableLogProvider(org.neo4j.logging.AssertableLogProvider) Test(org.junit.jupiter.api.Test)

Aggregations

Log (org.neo4j.logging.Log)164 Test (org.junit.Test)60 NullLog (org.neo4j.logging.NullLog)53 Test (org.junit.jupiter.api.Test)50 AssertableLogProvider (org.neo4j.logging.AssertableLogProvider)24 Path (java.nio.file.Path)20 LogProvider (org.neo4j.logging.LogProvider)15 File (java.io.File)13 IOException (java.io.IOException)12 Map (java.util.Map)12 Config (org.neo4j.kernel.configuration.Config)10 GraphDatabaseAPI (org.neo4j.kernel.internal.GraphDatabaseAPI)10 PageCache (org.neo4j.io.pagecache.PageCache)9 LifeSupport (org.neo4j.kernel.lifecycle.LifeSupport)8 NullLogProvider (org.neo4j.logging.NullLogProvider)7 HashMap (java.util.HashMap)6 Config (org.neo4j.configuration.Config)6 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)6 BasicContext (org.neo4j.kernel.api.proc.BasicContext)6 CallableProcedure (org.neo4j.kernel.api.procedure.CallableProcedure)6