private LogProvider setupLogging( Config config ) { FormattedLogProvider.Builder builder = FormattedLogProvider .withoutRenderingContext() .withZoneId( config.get( GraphDatabaseSettings.db_timezone ).getZoneId() ) .withDefaultLogLevel( config.get( GraphDatabaseSettings.store_internal_log_level ) ); LogProvider userLogProvider = config.get( GraphDatabaseSettings.store_user_log_to_stdout ) ? builder.toOutputStream( System.out ) : createFileSystemUserLogProvider( config, builder ); JULBridge.resetJUL(); Logger.getLogger( "" ).setLevel( Level.WARNING ); JULBridge.forwardTo( userLogProvider ); JettyLogBridge.setLogProvider( userLogProvider ); return userLogProvider; }
@Test public void consistencyCheckerLogUseSystemTimezoneIfConfigurable() throws Exception { TimeZone defaultTimeZone = TimeZone.getDefault(); try { ConsistencyCheckService service = mock( ConsistencyCheckService.class ); Mockito.when( service.runFullConsistencyCheck( any( DatabaseLayout.class ), any( Config.class ), any( ProgressMonitorFactory.class ), any( LogProvider.class ), any( FileSystemAbstraction.class ), eq( false ), any( ConsistencyFlags.class ) ) ) .then( invocationOnMock -> { LogProvider provider = invocationOnMock.getArgument( 3 ); provider.getLog( "test" ).info( "testMessage" ); return ConsistencyCheckService.Result.success( new File( StringUtils.EMPTY ) ); } ); File storeDir = testDirectory.directory(); File configFile = testDirectory.file( Config.DEFAULT_CONFIG_FILE_NAME ); Properties properties = new Properties(); properties.setProperty( GraphDatabaseSettings.db_timezone.name(), LogTimeZone.SYSTEM.name() ); properties.store( new FileWriter( configFile ), null ); String[] args = {storeDir.getPath(), "-config", configFile.getPath()}; checkLogRecordTimeZone( service, args, 5, "+0500" ); checkLogRecordTimeZone( service, args, -5, "-0500" ); } finally { TimeZone.setDefault( defaultTimeZone ); } }
private void setUpHttpLogging() throws IOException { if ( !getConfig().get( http_logging_enabled ) ) { return; } requestLog = new AsyncRequestLog( dependencyResolver.resolveDependency( FileSystemAbstraction.class ), config.get( db_timezone ).getZoneId(), config.get( http_log_path ).toString(), config.get( http_logging_rotation_size ), config.get( http_logging_rotation_keep_number ) ); webServer.setRequestLog( requestLog ); }
private void checkStartLogLine( int hoursShift, String timeZoneSuffix ) throws IOException { TimeZone.setDefault( TimeZone.getTimeZone( ZoneOffset.ofHours( hoursShift ) ) ); File storeDir = testDirectory.storeDir( String.valueOf( hoursShift ) ); File databaseDirectory = testDirectory.databaseLayout( storeDir ).databaseDirectory(); GraphDatabaseService database = new TestGraphDatabaseFactory().newEmbeddedDatabaseBuilder( databaseDirectory ) .setConfig( GraphDatabaseSettings.db_timezone, LogTimeZone.SYSTEM.name() ).newGraphDatabase(); database.shutdown(); Path databasePath = storeDir.toPath(); Path debugLog = Paths.get( "logs", "debug.log" ); String debugLogLine = getLogLine( databasePath, debugLog ); assertTrue( debugLogLine, debugLogLine.contains( timeZoneSuffix ) ); }
.withTimeZone( config.get( GraphDatabaseSettings.db_timezone ).getZoneId() );
@Test public void shouldImportDataComingFromCsvFiles() throws Exception { // GIVEN Config dbConfig = Config.builder().withSetting( db_timezone, LogTimeZone.SYSTEM.name() ).build(); try ( JobScheduler scheduler = new ThreadPoolJobScheduler() ) { BatchImporter importer = new ParallelBatchImporter( directory.databaseLayout(), fileSystemRule.get(), null, smallBatchSizeConfig(), NullLogService.getInstance(), invisible(), AdditionalInitialIds.EMPTY, dbConfig, RecordFormatSelector.defaultFormat(), NO_MONITOR, scheduler ); List<InputEntity> nodeData = randomNodeData(); List<InputEntity> relationshipData = randomRelationshipData( nodeData ); // WHEN importer.doImport( csv( nodeDataAsFile( nodeData ), relationshipDataAsFile( relationshipData ), IdType.STRING, lowBufferSize( COMMAS ), silentBadCollector( 0 ) ) ); // THEN verifyImportedData( nodeData, relationshipData ); } }
/** * Create page cache * @param fileSystem file system that page cache will be based on * @param pageCacheTracer global page cache tracer * @param pageCursorTracerSupplier supplier of thread local (transaction local) page cursor tracer that will provide * thread local page cache statistics * @param config page cache configuration * @param versionContextSupplier version context supplier * @param jobScheduler page cache job scheduler * @return created page cache instance */ public static PageCache createPageCache( FileSystemAbstraction fileSystem, PageCacheTracer pageCacheTracer, PageCursorTracerSupplier pageCursorTracerSupplier, Config config, VersionContextSupplier versionContextSupplier, JobScheduler jobScheduler ) { config.augmentDefaults( GraphDatabaseSettings.pagecache_memory, "8M" ); ZoneId logTimeZone = config.get( GraphDatabaseSettings.db_timezone ).getZoneId(); FormattedLogProvider logProvider = FormattedLogProvider.withZoneId( logTimeZone ).toOutputStream( System.err ); ConfiguringPageCacheFactory pageCacheFactory = new ConfiguringPageCacheFactory( fileSystem, config, pageCacheTracer, pageCursorTracerSupplier, logProvider.getLog( PageCache.class ), versionContextSupplier, jobScheduler ); return pageCacheFactory.getOrCreatePageCache(); } }
DatabaseLayout databaseLayout = DatabaseLayout.of( databaseDirectory ); checkDbState( databaseLayout, config ); ZoneId logTimeZone = config.get( GraphDatabaseSettings.db_timezone ).getZoneId();
ConsistencyCheckService.Result run( String... args ) throws ToolFailureException { Args arguments = Args.withFlags( VERBOSE ).parse( args ); File storeDir = determineStoreDirectory( arguments ); Config tuningConfiguration = readConfiguration( arguments ); boolean verbose = isVerbose( arguments ); DatabaseLayout databaseLayout = DatabaseLayout.of( storeDir ); checkDbState( databaseLayout, tuningConfiguration ); ZoneId logTimeZone = tuningConfiguration.get( GraphDatabaseSettings.db_timezone ).getZoneId(); LogProvider logProvider = FormattedLogProvider.withZoneId( logTimeZone ).toOutputStream( systemOut ); try { return consistencyCheckService.runFullConsistencyCheck( databaseLayout, tuningConfiguration, ProgressMonitorFactory.textual( systemError ), logProvider, fs, verbose, new ConsistencyFlags( tuningConfiguration ) ); } catch ( ConsistencyCheckIncompleteException e ) { throw new ToolFailureException( "Check aborted due to exception", e ); } }
private ZoneId getConfiguredTimeZone() { Config config = resolver.resolveDependency( Config.class ); return config.get( GraphDatabaseSettings.db_timezone ).getZoneId(); }
@Override public String dumpAll( ) { StringWriter stringWriter = new StringWriter(); ZoneId zoneId = config.get( GraphDatabaseSettings.db_timezone ).getZoneId(); FormattedLog.Builder logBuilder = FormattedLog.withZoneId( zoneId ); diagnostics.dumpAll( logBuilder.toWriter( stringWriter ) ); return stringWriter.toString(); }
@Override public String extract( String providerId ) { StringWriter stringWriter = new StringWriter(); ZoneId zoneId = config.get( GraphDatabaseSettings.db_timezone ).getZoneId(); FormattedLog.Builder logBuilder = FormattedLog.withZoneId( zoneId ); diagnostics.extract( providerId, logBuilder.toWriter( stringWriter ) ); return stringWriter.toString(); } }
private static LogService logService( FileSystemAbstraction fileSystem, Config config ) { File logFile = config.get( store_internal_log_path ); try { ZoneId zoneId = config.get( GraphDatabaseSettings.db_timezone ).getZoneId(); FormattedLogProvider logProvider = FormattedLogProvider.withZoneId( zoneId ).toOutputStream( System.out ); return StoreLogService.withUserLogProvider( logProvider ) .withInternalLog( logFile ) .build( fileSystem ); } catch ( IOException e ) { throw new RuntimeException( e ); } }
private LogProvider setupLogging( Config config ) { FormattedLogProvider.Builder builder = FormattedLogProvider .withoutRenderingContext() .withZoneId( config.get( GraphDatabaseSettings.db_timezone ).getZoneId() ) .withDefaultLogLevel( config.get( GraphDatabaseSettings.store_internal_log_level ) ); LogProvider userLogProvider = config.get( GraphDatabaseSettings.store_user_log_to_stdout ) ? builder.toOutputStream( System.out ) : createFileSystemUserLogProvider( config, builder ); JULBridge.resetJUL(); Logger.getLogger( "" ).setLevel( Level.WARNING ); JULBridge.forwardTo( userLogProvider ); JettyLogBridge.setLogProvider( userLogProvider ); return userLogProvider; }
private void setUpHttpLogging() throws IOException { if ( !getConfig().get( http_logging_enabled ) ) { return; } requestLog = new AsyncRequestLog( dependencyResolver.resolveDependency( FileSystemAbstraction.class ), config.get( db_timezone ).getZoneId(), config.get( http_log_path ).toString(), config.get( http_logging_rotation_size ), config.get( http_logging_rotation_keep_number ) ); webServer.setRequestLog( requestLog ); }
private static URI resolveUriWithProvider( String providerName, Config config, String from, Args args ) throws ToolFailureException { BackupExtensionService service; try { service = Service.load( BackupExtensionService.class, providerName ); } catch ( NoSuchElementException e ) { throw new ToolFailureException( String.format( UNKNOWN_SCHEMA_MESSAGE_PATTERN, providerName ) ); } try { ZoneId logTimeZone = config.get( GraphDatabaseSettings.db_timezone ).getZoneId(); FormattedLogProvider userLogProvider = FormattedLogProvider.withZoneId( logTimeZone ).toOutputStream( System.out ); return service.resolve( from, args, new SimpleLogService( userLogProvider, NullLogProvider.getInstance() ) ); } catch ( Throwable t ) { throw new ToolFailureException( t.getMessage() ); } }
public SecurityLog( Config config, FileSystemAbstraction fileSystem, Executor executor ) throws IOException { ZoneId logTimeZoneId = config.get( GraphDatabaseSettings.db_timezone ).getZoneId(); File logFile = config.get( SecuritySettings.security_log_filename ); FormattedLog.Builder builder = FormattedLog.withZoneId( logTimeZoneId ); rotatingSupplier = new RotatingFileOutputStreamSupplier( fileSystem, logFile, config.get( SecuritySettings.store_security_log_rotation_threshold ), config.get( SecuritySettings.store_security_log_rotation_delay ).toMillis(), config.get( SecuritySettings.store_security_log_max_archives ), executor ); FormattedLog formattedLog = builder.toOutputStream( rotatingSupplier ); formattedLog.setLevel( config.get( SecuritySettings.security_log_level ) ); this.inner = formattedLog; }
@Override public synchronized void init() { // This set of settings are currently not dynamic: currentLogTimeZone = config.get( GraphDatabaseSettings.db_timezone ).getZoneId(); logBuilder = FormattedLog.withZoneId( currentLogTimeZone ); currentQueryLogFile = config.get( GraphDatabaseSettings.log_queries_filename ); updateSettings(); registerDynamicSettingUpdater( GraphDatabaseSettings.log_queries ); registerDynamicSettingUpdater( GraphDatabaseSettings.log_queries_threshold ); registerDynamicSettingUpdater( GraphDatabaseSettings.log_queries_rotation_threshold ); registerDynamicSettingUpdater( GraphDatabaseSettings.log_queries_max_archives ); }