From 2b33c3ed2b592a3ddfc52418626d7a32c0f5d817 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Tue, 7 Jan 2014 14:51:10 +0100 Subject: [PATCH] SONAR-4756 Remove thread part from log format when profilingLevel < FULL --- sonar-application/src/main/resources/logback.xml | 2 +- .../main/java/org/sonar/core/config/Logback.java | 8 +++++--- .../platform/PlatformLifecycleListener.java | 15 ++++++++++++++- .../org/sonar/server/platform/logback.xml | 4 ++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/sonar-application/src/main/resources/logback.xml b/sonar-application/src/main/resources/logback.xml index dc50c43c00c..259b15ff591 100644 --- a/sonar-application/src/main/resources/logback.xml +++ b/sonar-application/src/main/resources/logback.xml @@ -22,7 +22,7 @@ - %d{yyyy.MM.dd HH:mm:ss} %-5level %thread [%logger{20}] %X %msg%n + %d{yyyy.MM.dd HH:mm:ss} %-5level [%logger{20}] %X %msg%n diff --git a/sonar-core/src/main/java/org/sonar/core/config/Logback.java b/sonar-core/src/main/java/org/sonar/core/config/Logback.java index 08d9abf7d15..e9fb414675b 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/Logback.java +++ b/sonar-core/src/main/java/org/sonar/core/config/Logback.java @@ -75,7 +75,9 @@ public class Logback implements BatchComponent, ServerComponent { configurator.setContext(configureContext(lc, substitutionVariables)); configurator.doConfigure(input); if (isConsoleEnabled(substitutionVariables)) { - ((Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)).addAppender(consoleAppender(lc)); + Logger rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); + rootLogger.setAdditive(false); + rootLogger.addAppender(consoleAppender(lc, substitutionVariables)); } } catch (JoranException e) { // StatusPrinter will handle this @@ -97,9 +99,9 @@ public class Logback implements BatchComponent, ServerComponent { return Boolean.valueOf(substitutionVariables.get("CONSOLE_ENABLED")); } - private static Appender consoleAppender(LoggerContext context) { + private static Appender consoleAppender(LoggerContext context, Map substitutionVariables) { PatternLayoutEncoder encoder = new PatternLayoutEncoder(); - encoder.setPattern("%d{yyyy.MM.dd HH:mm:ss} %-5level %thread [%logger{20}] %X %msg%n"); + encoder.setPattern(substitutionVariables.get("CONSOLE_LOGGING_FORMAT")); encoder.setContext(context); encoder.start(); ConsoleAppender console = new ConsoleAppender(); diff --git a/sonar-server/src/main/java/org/sonar/server/platform/PlatformLifecycleListener.java b/sonar-server/src/main/java/org/sonar/server/platform/PlatformLifecycleListener.java index b31b1f0a486..cebc01c07ef 100644 --- a/sonar-server/src/main/java/org/sonar/server/platform/PlatformLifecycleListener.java +++ b/sonar-server/src/main/java/org/sonar/server/platform/PlatformLifecycleListener.java @@ -20,7 +20,6 @@ package org.sonar.server.platform; import com.google.common.collect.ImmutableMap; - import org.slf4j.LoggerFactory; import org.sonar.core.config.Logback; import org.sonar.core.profiling.Profiling; @@ -36,6 +35,18 @@ public final class PlatformLifecycleListener implements ServletContextListener { private static final String CONFIG_LOG_CONSOLE = "sonar.log.console"; + private static final String LOG_COMMON_PREFIX = "%d{yyyy.MM.dd HH:mm:ss} %-5level "; + private static final String LOG_COMMON_SUFFIX = "%msg%n"; + + private static final String LOG_LOGFILE_SPECIFIC_PART = "[%logger{20}] %X "; + private static final String LOG_FULL_SPECIFIC_PART = "%thread "; + + private static final String LOGFILE_STANDARD_LOGGING_FORMAT = LOG_COMMON_PREFIX + LOG_LOGFILE_SPECIFIC_PART + LOG_COMMON_SUFFIX; + private static final String LOGFILE_FULL_LOGGING_FORMAT = LOG_COMMON_PREFIX + LOG_FULL_SPECIFIC_PART + LOG_LOGFILE_SPECIFIC_PART + LOG_COMMON_SUFFIX; + + private static final String CONSOLE_STANDARD_LOGGING_FORMAT = LOG_COMMON_PREFIX + LOG_COMMON_SUFFIX; + private static final String CONSOLE_FULL_LOGGING_FORMAT = LOG_COMMON_PREFIX + LOG_FULL_SPECIFIC_PART + LOG_COMMON_SUFFIX; + public void contextInitialized(ServletContextEvent event) { try { configureLogback(event); @@ -79,6 +90,8 @@ public final class PlatformLifecycleListener implements ServletContextListener { "false"); Map variables = ImmutableMap.of( "RAILS_LOGGER_LEVEL", profilingLevel == Profiling.Level.FULL ? "DEBUG" : "WARN", + "LOGFILE_LOGGING_FORMAT", profilingLevel == Profiling.Level.FULL ? LOGFILE_FULL_LOGGING_FORMAT : LOGFILE_STANDARD_LOGGING_FORMAT, + "CONSOLE_LOGGING_FORMAT", profilingLevel == Profiling.Level.FULL ? CONSOLE_FULL_LOGGING_FORMAT : CONSOLE_STANDARD_LOGGING_FORMAT, "CONSOLE_ENABLED", consoleEnabled); Logback.configure("/org/sonar/server/platform/logback.xml", variables); } diff --git a/sonar-server/src/main/resources/org/sonar/server/platform/logback.xml b/sonar-server/src/main/resources/org/sonar/server/platform/logback.xml index f7f9991eaca..0fef27fea70 100644 --- a/sonar-server/src/main/resources/org/sonar/server/platform/logback.xml +++ b/sonar-server/src/main/resources/org/sonar/server/platform/logback.xml @@ -22,7 +22,7 @@ - %d{yyyy.MM.dd HH:mm:ss} %-5level %thread [%logger{20}] %X %msg%n + ${LOGFILE_LOGGING_FORMAT} @@ -30,7 +30,7 @@ - %d{yyyy.MM.dd HH:mm:ss} %-5level %msg%n + ${CONSOLE_LOGGING_FORMAT} -- 2.39.5