use of org.neo4j.logging.Log in project neo4j by neo4j.
the class UnknownAddressMonitorTest method shouldThrottleLogging.
@Test
public void shouldThrottleLogging() throws Exception {
// given
Log log = mock(Log.class);
FakeClock clock = testClock();
UnknownAddressMonitor logger = new UnknownAddressMonitor(log, clock, 1000);
MemberId to = member(0);
// when
logger.logAttemptToSendToMemberWithNoKnownAddress(to);
clock.forward(1, MILLISECONDS);
logger.logAttemptToSendToMemberWithNoKnownAddress(to);
// then
verify(log, times(1)).info(format("No address found for %s, probably because the member has been shut " + "down.", to));
}
use of org.neo4j.logging.Log in project neo4j by neo4j.
the class StoreMigration method run.
public void run(final FileSystemAbstraction fs, final File storeDirectory, Config config, LogProvider userLogProvider) throws IOException {
StoreLogService logService = StoreLogService.withUserLogProvider(userLogProvider).inLogsDirectory(fs, storeDirectory);
VisibleMigrationProgressMonitor progressMonitor = new VisibleMigrationProgressMonitor(logService.getUserLog(StoreMigration.class));
LifeSupport life = new LifeSupport();
life.add(logService);
// Add participants from kernel extensions...
LegacyIndexProvider legacyIndexProvider = new LegacyIndexProvider();
Log log = userLogProvider.getLog(StoreMigration.class);
try (PageCache pageCache = createPageCache(fs, config)) {
Dependencies deps = new Dependencies();
deps.satisfyDependencies(fs, config, legacyIndexProvider, pageCache, logService);
KernelContext kernelContext = new SimpleKernelContext(storeDirectory, DatabaseInfo.UNKNOWN, deps);
KernelExtensions kernelExtensions = life.add(new KernelExtensions(kernelContext, GraphDatabaseDependencies.newDependencies().kernelExtensions(), deps, ignore()));
// Add the kernel store migrator
life.start();
SchemaIndexProvider schemaIndexProvider = kernelExtensions.resolveDependency(SchemaIndexProvider.class, HighestSelectionStrategy.getInstance());
LabelScanStoreProvider labelScanStoreProvider = kernelExtensions.resolveDependency(LabelScanStoreProvider.class, new NamedLabelScanStoreSelectionStrategy(config));
long startTime = System.currentTimeMillis();
DatabaseMigrator migrator = new DatabaseMigrator(progressMonitor, fs, config, logService, schemaIndexProvider, labelScanStoreProvider, legacyIndexProvider.getIndexProviders(), pageCache, RecordFormatSelector.selectForConfig(config, userLogProvider));
migrator.migrate(storeDirectory);
long duration = System.currentTimeMillis() - startTime;
log.info(format("Migration completed in %d s%n", duration / 1000));
} catch (Exception e) {
throw new StoreUpgrader.UnableToUpgradeException("Failure during upgrade", e);
} finally {
life.shutdown();
}
}
use of org.neo4j.logging.Log in project neo4j by neo4j.
the class TransactionHandleTest method shouldLogMessageIfCommitErrorOccurs.
@Test
public void shouldLogMessageIfCommitErrorOccurs() throws Exception {
// given
TransitionalPeriodTransactionMessContainer kernel = mockKernel();
TransitionalTxManagementKernelTransaction transactionContext = kernel.newTransaction(explicit, AUTH_DISABLED, -1);
doThrow(new NullPointerException()).when(transactionContext).commit();
LogProvider logProvider = mock(LogProvider.class);
Log log = mock(Log.class);
when(logProvider.getLog(TransactionHandle.class)).thenReturn(log);
TransactionRegistry registry = mock(TransactionRegistry.class);
QueryExecutionEngine engine = mock(QueryExecutionEngine.class);
Result executionResult = mock(Result.class);
TransactionalContext transactionalContext = prepareKernelWithQuerySession(kernel);
when(engine.executeQuery("query", map(), transactionalContext)).thenReturn(executionResult);
when(registry.begin(any(TransactionHandle.class))).thenReturn(1337L);
GraphDatabaseQueryService queryService = mock(GraphDatabaseQueryService.class);
TransactionHandle handle = new TransactionHandle(kernel, engine, queryService, registry, uriScheme, false, AUTH_DISABLED, anyLong(), logProvider);
ExecutionResultSerializer output = mock(ExecutionResultSerializer.class);
// when
Statement statement = new Statement("query", map(), false, (ResultDataContent[]) null);
handle.commit(statements(statement), output, mock(HttpServletRequest.class));
// then
verify(log).error(eq("Failed to commit transaction."), any(NullPointerException.class));
verify(registry).forget(1337L);
InOrder outputOrder = inOrder(output);
outputOrder.verify(output).statementResult(executionResult, false, (ResultDataContent[]) null);
outputOrder.verify(output).notifications(anyCollectionOf(Notification.class));
outputOrder.verify(output).errors(argThat(hasErrors(Status.Transaction.TransactionCommitFailed)));
outputOrder.verify(output).finish();
verifyNoMoreInteractions(output);
}
use of org.neo4j.logging.Log in project neo4j by neo4j.
the class MonitorLoggingExtension method init.
@Override
public void init() throws Throwable {
Set<Map.Entry<Object, Object>> classes = props.entrySet();
if (classes.isEmpty()) {
return;
}
final Map<Class<?>, Logger> clazzez = new HashMap<>(classes.size());
for (Map.Entry<Object, Object> entry : classes) {
String className = (String) entry.getKey();
String logLevel = (String) entry.getValue();
Class clazz;
try {
clazz = getClass().getClassLoader().loadClass(className);
} catch (ClassNotFoundException ex) {
log.warn("When trying to add a logging monitor, not able to load class " + className, ex);
continue;
}
Log classLog = logService.getInternalLog(clazz);
Logger logger;
switch(logLevel) {
case "DEBUG":
logger = classLog.debugLogger();
break;
case "INFO":
logger = classLog.infoLogger();
break;
case "WARN":
logger = classLog.warnLogger();
break;
case "ERROR":
logger = classLog.errorLogger();
break;
default:
log.warn("When trying to add a logging monitor for %s not able to understand the log level, got %s", className, logLevel);
continue;
}
clazzez.put(clazz, logger);
}
if (clazzez.isEmpty()) {
return;
}
LoggingListener listener = new LoggingListener(clazzez);
monitors.addMonitorListener(listener, listener.predicate);
}
use of org.neo4j.logging.Log in project neo4j by neo4j.
the class BackupServiceIT method shouldPrintThatIncrementalBackupIsPerformedAndFallingBackToFull.
@Test
public void shouldPrintThatIncrementalBackupIsPerformedAndFallingBackToFull() throws Exception {
defaultBackupPortHostParams();
Config defaultConfig = dbRule.getConfigCopy();
dbRule.setConfig(GraphDatabaseSettings.keep_logical_logs, "false");
// have logs rotated on every transaction
GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI();
createAndIndexNode(db, 1);
// A full backup
backupService().doFullBackup(BACKUP_HOST, backupPort, backupDir, ConsistencyCheck.NONE, defaultConfig, BackupClient.BIG_READ_TIMEOUT, false);
// And the log the backup uses is rotated out
createAndIndexNode(db, 2);
rotateAndCheckPoint(db);
createAndIndexNode(db, 3);
rotateAndCheckPoint(db);
createAndIndexNode(db, 4);
rotateAndCheckPoint(db);
final Log log = mock(Log.class);
LogProvider logProvider = new LogProvider() {
@Override
public Log getLog(Class loggingClass) {
return log;
}
@Override
public Log getLog(String name) {
return log;
}
};
backupService(logProvider).doIncrementalBackupOrFallbackToFull(BACKUP_HOST, backupPort, backupDir, ConsistencyCheck.NONE, dbRule.getConfigCopy(), BackupClient.BIG_READ_TIMEOUT, false);
verify(log).info("Previous backup found, trying incremental backup.");
verify(log).info("Existing backup is too far out of date, a new full backup will be performed.");
}
Aggregations