public SocketNode(SimpleSocketServer socketServer, Socket socket, LoggerContext context) { this.socketServer = socketServer; this.socket = socket; remoteSocketAddress = socket.getRemoteSocketAddress(); this.context = context; logger = context.getLogger(SocketNode.class); }
public final Logger getLogger(final Class<?> clazz) { return getLogger(clazz.getName()); }
/** * {@inheritDoc} */ public void setLoggerContext(LoggerContext lc) { this.lc = lc; this.logger = lc.getLogger(getClass().getPackage().getName()); }
public void begin(InterpretationContext ec, String name, Attributes attributes) { inError = false; LoggerContext loggerContext = (LoggerContext) this.context; root = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME); String levelStr = ec.subst(attributes.getValue(ActionConst.LEVEL_ATTRIBUTE)); if (!OptionHelper.isEmpty(levelStr)) { Level level = Level.toLevel(levelStr); addInfo("Setting level of ROOT logger to " + level); root.setLevel(level); } ec.pushObject(root); }
/** * Make the logback configuration for a sub process to correctly push all its logs to be read by a stream gobbler * on the sub process's System.out. * * @see #buildLogPattern(RootLoggerConfig) */ public void configureForSubprocessGobbler(Props props, String logPattern) { if (isAllLogsToConsoleEnabled(props)) { LoggerContext ctx = getRootContext(); ctx.getLogger(ROOT_LOGGER_NAME).addAppender(newConsoleAppender(ctx, "root_console", logPattern)); } }
private void verifyJmxLogLevel(LoggerContext ctx, Level expected) { assertThat(ctx.getLogger("javax.management.remote.timeout").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("javax.management.remote.misc").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("javax.management.remote.rmi").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("javax.management.mbeanserver").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.loader").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.transport.tcp").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.transport.misc").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.server.call").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.dgc").getLevel()).isEqualTo(expected); }
private void verifyJmxLogLevel(LoggerContext ctx, Level expected) { assertThat(ctx.getLogger("javax.management.remote.timeout").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("javax.management.remote.misc").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("javax.management.remote.rmi").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("javax.management.mbeanserver").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.loader").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.transport.tcp").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.transport.misc").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.server.call").getLevel()).isEqualTo(expected); assertThat(ctx.getLogger("sun.rmi.dgc").getLevel()).isEqualTo(expected); }
@Test public void configure_turns_off_some_MsSQL_driver_logger() { LoggerContext context = underTest.configure(props); Stream.of("com.microsoft.sqlserver.jdbc.internals", "com.microsoft.sqlserver.jdbc.ResultSet", "com.microsoft.sqlserver.jdbc.Statement", "com.microsoft.sqlserver.jdbc.Connection") .forEach(loggerName -> assertThat(context.getLogger(loggerName).getLevel()).isEqualTo(Level.OFF)); }
@Test public void configure_turns_off_some_MsSQL_driver_logger() { LoggerContext context = underTest.configure(props); Stream.of("com.microsoft.sqlserver.jdbc.internals", "com.microsoft.sqlserver.jdbc.ResultSet", "com.microsoft.sqlserver.jdbc.Statement", "com.microsoft.sqlserver.jdbc.Connection") .forEach(loggerName -> assertThat(context.getLogger(loggerName).getLevel()).isEqualTo(Level.OFF)); }
@Test public void log_to_ce_file() { LoggerContext ctx = underTest.configure(props); Logger root = ctx.getLogger(Logger.ROOT_LOGGER_NAME); Appender<ILoggingEvent> appender = root.getAppender("file_ce"); assertThat(appender).isInstanceOf(FileAppender.class); FileAppender fileAppender = (FileAppender) appender; assertThat(fileAppender.getFile()).isEqualTo(new File(logDir, "ce.log").getAbsolutePath()); assertThat(fileAppender.getEncoder()).isInstanceOf(PatternLayoutEncoder.class); PatternLayoutEncoder encoder = (PatternLayoutEncoder) fileAppender.getEncoder(); assertThat(encoder.getPattern()).isEqualTo("%d{yyyy.MM.dd HH:mm:ss} %-5level ce[%X{ceTaskUuid}][%logger{20}] %msg%n"); }
@Test public void log_to_web_file() { LoggerContext ctx = underTest.configure(props); Logger root = ctx.getLogger(Logger.ROOT_LOGGER_NAME); Appender<ILoggingEvent> appender = root.getAppender("file_web"); assertThat(appender).isInstanceOf(FileAppender.class); FileAppender fileAppender = (FileAppender) appender; assertThat(fileAppender.getFile()).isEqualTo(new File(logDir, "web.log").getAbsolutePath()); assertThat(fileAppender.getEncoder()).isInstanceOf(PatternLayoutEncoder.class); PatternLayoutEncoder encoder = (PatternLayoutEncoder) fileAppender.getEncoder(); assertThat(encoder.getPattern()).isEqualTo("%d{yyyy.MM.dd HH:mm:ss} %-5level web[%X{HTTP_REQUEST_ID}][%logger{20}] %msg%n"); }
@Test public void do_not_log_to_console() { LoggerContext ctx = underTest.configure(props); Logger root = ctx.getLogger(Logger.ROOT_LOGGER_NAME); Appender appender = root.getAppender("CONSOLE"); assertThat(appender).isNull(); }
@Test public void apply_set_level_to_OFF_if_sonar_global_level_is_not_set() { LoggerContext context = underTest.apply(newLogLevelConfig().offUnlessTrace("fii").build(), new Props(new Properties())); assertThat(context.getLogger("fii").getLevel()).isEqualTo(Level.OFF); }
public static <T> ListAppender attachMemoryAppenderToLoggerOf(Class<T> loggerClass) { ListAppender listAppender = new ListAppender(); new LogbackHelper().getRootContext().getLogger(loggerClass) .addAppender(listAppender); listAppender.start(); return listAppender; }
private void setLevelToOff(Level globalLogLevel) { Properties properties = new Properties(); properties.setProperty("sonar.log.level", globalLogLevel.toString()); LoggerContext context = underTest.apply(newLogLevelConfig().offUnlessTrace("fii").build(), new Props(properties)); assertThat(context.getLogger("fii").getLevel()).isEqualTo(Level.OFF); }
@Test public void apply_does_not_set_level_if_sonar_global_level_is_TRACE() { Properties properties = new Properties(); properties.setProperty("sonar.log.level", Level.TRACE.toString()); assertThat(underTest.getRootContext().getLogger("fii").getLevel()).isNull(); LoggerContext context = underTest.apply(newLogLevelConfig().offUnlessTrace("fii").build(), new Props(properties)); assertThat(context.getLogger("fii").getLevel()).isNull(); }
public void configure(LoggerContext lc) { addInfo("Setting up default configuration."); ConsoleAppender<ILoggingEvent> ca = new ConsoleAppender<ILoggingEvent>(); ca.setContext(lc); ca.setName("console"); LayoutWrappingEncoder<ILoggingEvent> encoder = new LayoutWrappingEncoder<ILoggingEvent>(); encoder.setContext(lc); // same as // PatternLayout layout = new PatternLayout(); // layout.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); TTLLLayout layout = new TTLLLayout(); layout.setContext(lc); layout.start(); encoder.setLayout(layout); ca.setEncoder(encoder); ca.start(); Logger rootLogger = lc.getLogger(Logger.ROOT_LOGGER_NAME); rootLogger.addAppender(ca); } }
@Test public void apply_sets_logger_to_process_property_if_set() { LogLevelConfig config = newLogLevelConfig().rootLevelFor(ProcessId.WEB_SERVER).build(); props.set("sonar.log.level.web", "DEBUG"); LoggerContext context = underTest.apply(config, props); assertThat(context.getLogger(ROOT_LOGGER_NAME).getLevel()).isEqualTo(Level.DEBUG); }
@Test @UseDataProvider("logbackLevels") public void apply_accepts_any_level_as_hardcoded_level(Level level) { LogLevelConfig config = newLogLevelConfig().immutableLevel("bar", level).build(); LoggerContext context = underTest.apply(config, props); assertThat(context.getLogger("bar").getLevel()).isEqualTo(level); }
@Test public void gobbler_logger_writes_to_console_without_formatting_when_running_from_command_line() { emulateRunFromCommandLine(false); LoggerContext ctx = underTest.configure(); Logger gobblerLogger = ctx.getLogger(LOGGER_GOBBLER); verifyGobblerConsoleAppender(gobblerLogger); assertThat(gobblerLogger.iteratorForAppenders()).hasSize(1); }