private LogLevelConfig.Builder newLogLevelConfig() { return LogLevelConfig.newBuilder("rootLogger"); }
private LogLevelConfig.Builder newLogLevelConfig() { return LogLevelConfig.newBuilder(ROOT_LOGGER_NAME); }
@Test public void getLoggerName_returns_name_passed_to_builder() { String rootLoggerName = RandomStringUtils.randomAlphabetic(32); LogLevelConfig logLevelConfig = newBuilder(rootLoggerName).build(); assertThat(logLevelConfig.getRootLoggerName()).isEqualTo(rootLoggerName); }
@Test public void changeLevel_to_trace_enables_db_logging() { LogLevelConfig logLevelConfig = LogLevelConfig.newBuilder(rootLoggerName).build(); when(serverProcessLogging.getLogLevelConfig()).thenReturn(logLevelConfig); reset(database); underTest.changeLevel(INFO); verify(database).enableSqlLogging(false); reset(database); underTest.changeLevel(DEBUG); verify(database).enableSqlLogging(false); reset(database); underTest.changeLevel(TRACE); verify(database).enableSqlLogging(true); }
@Test public void newBuilder_throws_NPE_if_rootLoggerName_is_null() { expectedException.expect(NullPointerException.class); expectedException.expectMessage("rootLoggerName can't be null"); newBuilder(null); }
@Test public void build_can_create_empty_config_and_returned_maps_are_unmodifiable() { LogLevelConfig underTest = newBuilder(rootLoggerName).build(); expectUnsupportedOperationException(() -> underTest.getConfiguredByProperties().put("1", Collections.emptyList())); expectUnsupportedOperationException(() -> underTest.getConfiguredByHardcodedLevel().put("1", Level.ERROR)); }
@Test public void builder_rootLevelFor_add_global_and_process_property_in_order_for_root_logger() { LogLevelConfig underTest = newBuilder(rootLoggerName).rootLevelFor(ProcessId.ELASTICSEARCH).build(); assertThat(underTest.getConfiguredByProperties()).hasSize(1); assertThat(underTest.getConfiguredByProperties().get(rootLoggerName)) .containsExactly("sonar.log.level", "sonar.log.level.es"); assertThat(underTest.getConfiguredByHardcodedLevel()).hasSize(0); }
@Test public void builder_levelByDomain_adds_global_process_and_domain_properties_in_order_for_specified_logger() { LogLevelConfig underTest = newBuilder(rootLoggerName) .levelByDomain("foo", ProcessId.WEB_SERVER, LogDomain.SQL) .build(); assertThat(underTest.getConfiguredByProperties()).hasSize(1); assertThat(underTest.getConfiguredByProperties().get("foo")) .containsExactly("sonar.log.level", "sonar.log.level.web", "sonar.log.level.web.sql"); assertThat(underTest.getConfiguredByHardcodedLevel()).hasSize(0); }
LoggerContext ctx = underTest.getRootContext(); String logbackRootLoggerName = underTest.getRootLoggerName(); LogLevelConfig config = LogLevelConfig.newBuilder(logbackRootLoggerName) .levelByDomain(logbackRootLoggerName, ProcessId.WEB_SERVER, LogDomain.JMX).build(); props.set("sonar.log.level.web", "TRACE");
@Test @UseDataProvider("supportedSonarApiLevels") public void changeLevel_calls_changeRoot_with_LogLevelConfig_and_level_converted_to_logback_class_then_log_INFO_message(LoggerLevel level) { LogLevelConfig logLevelConfig = LogLevelConfig.newBuilder(rootLoggerName).build(); when(serverProcessLogging.getLogLevelConfig()).thenReturn(logLevelConfig); underTest.changeLevel(level); verify(logbackHelper).changeRoot(logLevelConfig, Level.valueOf(level.name())); }
public Properties createProperties(Props props, File logDir) { Log4JPropertiesBuilder log4JPropertiesBuilder = new Log4JPropertiesBuilder(props); RootLoggerConfig config = newRootLoggerConfigBuilder().setProcessId(ProcessId.ELASTICSEARCH).build(); String logPattern = log4JPropertiesBuilder.buildLogPattern(config); log4JPropertiesBuilder.internalLogLevel(Level.ERROR); log4JPropertiesBuilder.configureGlobalFileLog(config, logDir, logPattern); log4JPropertiesBuilder.apply( LogLevelConfig.newBuilder(log4JPropertiesBuilder.getRootLoggerName()) .rootLevelFor(ProcessId.ELASTICSEARCH) .build()); return log4JPropertiesBuilder.get(); }
@Test public void apply_fails_with_IAE_if_LogLevelConfig_does_not_have_ROOT_LOGGER_NAME_of_LogBack() { LogLevelConfig logLevelConfig = LogLevelConfig.newBuilder(randomAlphanumeric(2)).build(); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Value of LogLevelConfig#rootLoggerName must be \"ROOT\""); underTest.apply(logLevelConfig, props); }
public LoggerContext configure() { LoggerContext ctx = helper.getRootContext(); ctx.reset(); helper.enableJulChangePropagation(ctx); configureConsole(ctx); if (helper.isAllLogsToConsoleEnabled(appSettings.getProps()) || !appSettings.getProps().valueAsBoolean("sonar.wrapped", false)) { configureWithLogbackWritingToFile(ctx); } else { configureWithWrapperWritingToFile(ctx); } helper.apply( LogLevelConfig.newBuilder(helper.getRootLoggerName()) .rootLevelFor(ProcessId.APP) .immutableLevel("com.hazelcast", Level.toLevel("WARN")) .build(), appSettings.getProps()); return ctx; }
@Test public void apply_fails_with_IAE_if_LogLevelConfig_does_not_have_rootLoggerName_of_Log4J() { Log4JPropertiesBuilder underTest = newLog4JPropertiesBuilder(); LogLevelConfig logLevelConfig = LogLevelConfig.newBuilder(randomAlphanumeric(2)).build(); expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Value of LogLevelConfig#rootLoggerName must be \"rootLogger\""); underTest.apply(logLevelConfig); }
private LogLevelConfig createLogLevelConfiguration(ProcessId processId) { LogLevelConfig.Builder builder = LogLevelConfig.newBuilder(helper.getRootLoggerName()); builder.rootLevelFor(processId); builder.immutableLevel("org.apache.ibatis", Level.WARN);
public Properties createProperties(Props props, File logDir) { Log4JPropertiesBuilder log4JPropertiesBuilder = new Log4JPropertiesBuilder(props); RootLoggerConfig config = newRootLoggerConfigBuilder().setProcessId(ProcessId.ELASTICSEARCH).build(); String logPattern = log4JPropertiesBuilder.buildLogPattern(config); log4JPropertiesBuilder.internalLogLevel(Level.ERROR); log4JPropertiesBuilder.configureGlobalFileLog(config, logDir, logPattern); log4JPropertiesBuilder.apply( LogLevelConfig.newBuilder(log4JPropertiesBuilder.getRootLoggerName()) .rootLevelFor(ProcessId.ELASTICSEARCH) .build()); return log4JPropertiesBuilder.get(); }
public LoggerContext configure() { LoggerContext ctx = helper.getRootContext(); ctx.reset(); helper.enableJulChangePropagation(ctx); configureConsole(ctx); if (helper.isAllLogsToConsoleEnabled(appSettings.getProps()) || !appSettings.getProps().valueAsBoolean("sonar.wrapped", false)) { configureWithLogbackWritingToFile(ctx); } else { configureWithWrapperWritingToFile(ctx); } helper.apply( LogLevelConfig.newBuilder(helper.getRootLoggerName()) .rootLevelFor(ProcessId.APP) .immutableLevel("com.hazelcast", Level.toLevel("WARN")) .build(), appSettings.getProps()); return ctx; }
private LogLevelConfig createLogLevelConfiguration(ProcessId processId) { LogLevelConfig.Builder builder = LogLevelConfig.newBuilder(helper.getRootLoggerName()); builder.rootLevelFor(processId); builder.immutableLevel("org.apache.ibatis", Level.WARN); builder.immutableLevel("java.sql", Level.WARN); builder.immutableLevel("java.sql.ResultSet", Level.WARN); builder.immutableLevel("org.sonar.MEASURE_FILTER", Level.WARN); builder.immutableLevel("org.elasticsearch", Level.INFO); builder.immutableLevel("org.elasticsearch.node", Level.INFO); builder.immutableLevel("org.elasticsearch.http", Level.INFO); builder.immutableLevel("ch.qos.logback", Level.WARN); builder.immutableLevel("org.apache.catalina", Level.INFO); builder.immutableLevel("org.apache.coyote", Level.INFO); builder.immutableLevel("org.apache.jasper", Level.INFO); builder.immutableLevel("org.apache.tomcat", Level.INFO); builder.immutableLevel("org.postgresql.core.v3.QueryExecutorImpl", Level.INFO); builder.immutableLevel("org.postgresql.jdbc.PgConnection", Level.INFO); extendLogLevelConfiguration(builder); return builder.build(); }