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);
}
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);
}
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());
}
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);
}
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]");
}
Aggregations