Search in sources :

Example 6 with Log

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));
}
Also used : MemberId(org.neo4j.causalclustering.identity.MemberId) Log(org.neo4j.logging.Log) FakeClock(org.neo4j.time.FakeClock) Test(org.junit.Test)

Example 7 with Log

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();
    }
}
Also used : SchemaIndexProvider(org.neo4j.kernel.api.index.SchemaIndexProvider) LabelScanStoreProvider(org.neo4j.kernel.impl.api.scan.LabelScanStoreProvider) VisibleMigrationProgressMonitor(org.neo4j.kernel.impl.storemigration.monitoring.VisibleMigrationProgressMonitor) StoreLogService(org.neo4j.kernel.impl.logging.StoreLogService) Log(org.neo4j.logging.Log) IOException(java.io.IOException) DatabaseMigrator(org.neo4j.kernel.impl.storemigration.DatabaseMigrator) KernelExtensions(org.neo4j.kernel.extension.KernelExtensions) SimpleKernelContext(org.neo4j.kernel.impl.spi.SimpleKernelContext) LifeSupport(org.neo4j.kernel.lifecycle.LifeSupport) Dependencies(org.neo4j.kernel.impl.util.Dependencies) GraphDatabaseDependencies(org.neo4j.kernel.GraphDatabaseDependencies) StoreUpgrader(org.neo4j.kernel.impl.storemigration.StoreUpgrader) NamedLabelScanStoreSelectionStrategy(org.neo4j.kernel.extension.dependency.NamedLabelScanStoreSelectionStrategy) PageCache(org.neo4j.io.pagecache.PageCache) ConfigurableStandalonePageCacheFactory.createPageCache(org.neo4j.kernel.impl.pagecache.ConfigurableStandalonePageCacheFactory.createPageCache) SimpleKernelContext(org.neo4j.kernel.impl.spi.SimpleKernelContext) KernelContext(org.neo4j.kernel.impl.spi.KernelContext)

Example 8 with Log

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);
}
Also used : InOrder(org.mockito.InOrder) Log(org.neo4j.logging.Log) GraphDatabaseQueryService(org.neo4j.kernel.GraphDatabaseQueryService) Notification(org.neo4j.graphdb.Notification) Result(org.neo4j.graphdb.Result) QueryExecutionEngine(org.neo4j.kernel.impl.query.QueryExecutionEngine) HttpServletRequest(javax.servlet.http.HttpServletRequest) LogProvider(org.neo4j.logging.LogProvider) NullLogProvider(org.neo4j.logging.NullLogProvider) TransactionalContext(org.neo4j.kernel.impl.query.TransactionalContext) Test(org.junit.Test)

Example 9 with Log

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);
}
Also used : HashMap(java.util.HashMap) Log(org.neo4j.logging.Log) Logger(org.neo4j.logging.Logger) Map(java.util.Map) HashMap(java.util.HashMap)

Example 10 with Log

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.");
}
Also used : NullLogProvider(org.neo4j.logging.NullLogProvider) FormattedLogProvider(org.neo4j.logging.FormattedLogProvider) LogProvider(org.neo4j.logging.LogProvider) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) Log(org.neo4j.logging.Log) Config(org.neo4j.kernel.configuration.Config) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Test(org.junit.Test)

Aggregations

Log (org.neo4j.logging.Log)91 Test (org.junit.Test)63 NullLog (org.neo4j.logging.NullLog)29 File (java.io.File)12 LogProvider (org.neo4j.logging.LogProvider)12 IOException (java.io.IOException)9 Config (org.neo4j.kernel.configuration.Config)9 BasicContext (org.neo4j.kernel.api.proc.BasicContext)8 Map (java.util.Map)7 NullLogProvider (org.neo4j.logging.NullLogProvider)7 PageCache (org.neo4j.io.pagecache.PageCache)6 CallableProcedure (org.neo4j.kernel.api.proc.CallableProcedure)6 LogService (org.neo4j.kernel.impl.logging.LogService)6 AssertableLogProvider (org.neo4j.logging.AssertableLogProvider)6 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)5 Monitors (org.neo4j.kernel.monitoring.Monitors)5 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)4 Before (org.junit.Before)4 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)4 FileSystemAbstraction (org.neo4j.io.fs.FileSystemAbstraction)4