From 94ca842bc165eeb9001b04bc540e229df34163b2 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Fri, 25 Jul 2014 11:42:22 +0200 Subject: [PATCH] SONAR-4898 Remove sonar-application-test from build --- pom.xml | 5 ++- .../java/org/sonar/server/app/Logging.java | 36 ++++++++++++++++++- .../org/sonar/server/app/ServerProcess.java | 2 +- .../PlatformServletContextListener.java | 2 +- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 18c24f78d0f..aec42caa6a9 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,6 @@ sonar-application - sonar-application-test sonar-batch sonar-batch-maven-compat sonar-batch-protocol @@ -488,8 +487,8 @@ - org.codehaus.mojo diff --git a/server/sonar-server/src/main/java/org/sonar/server/app/Logging.java b/server/sonar-server/src/main/java/org/sonar/server/app/Logging.java index a4d1aaeec28..0ac684828e5 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/app/Logging.java +++ b/server/sonar-server/src/main/java/org/sonar/server/app/Logging.java @@ -20,26 +20,60 @@ package org.sonar.server.app; import ch.qos.logback.access.tomcat.LogbackValve; +import com.google.common.collect.ImmutableMap; import org.apache.catalina.LifecycleEvent; import org.apache.catalina.LifecycleListener; import org.apache.catalina.startup.Tomcat; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.bridge.SLF4JBridgeHandler; +import org.sonar.core.config.Logback; +import org.sonar.core.profiling.Profiling; import org.sonar.process.Props; import java.io.File; +import java.util.Map; import java.util.logging.LogManager; class Logging { + 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; + static final String ACCESS_RELATIVE_PATH = "WEB-INF/config/logback-access.xml"; static final String PROPERTY_ENABLE_ACCESS_LOGS = "sonar.web.accessLogs.enable"; - static void init() { + static void init(Props props) { // Configure java.util.logging, used by Tomcat, in order to forward to slf4j LogManager.getLogManager().reset(); SLF4JBridgeHandler.install(); + configureLogback(props); + } + + /** + * Configure Logback from classpath, with configuration from sonar.properties + */ + private static void configureLogback(Props props) { + String configProfilingLevel = props.of(Profiling.CONFIG_PROFILING_LEVEL, "NONE"); + Profiling.Level profilingLevel = Profiling.Level.fromConfigString(configProfilingLevel); + String consoleEnabled = props.of(CONFIG_LOG_CONSOLE, "false"); + Map variables = ImmutableMap.of( + "sonar.path.logs", props.of("sonar.path.logs"), + "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); } static void configure(Tomcat tomcat, Props props) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/app/ServerProcess.java b/server/sonar-server/src/main/java/org/sonar/server/app/ServerProcess.java index 35c9aba1e8f..863bb03f4fe 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/app/ServerProcess.java +++ b/server/sonar-server/src/main/java/org/sonar/server/app/ServerProcess.java @@ -25,7 +25,7 @@ public class ServerProcess extends org.sonar.process.Process { public ServerProcess(String[] args) { super(args); - Logging.init(); + Logging.init(props); this.tomcat = new EmbeddedTomcat(props); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/PlatformServletContextListener.java b/server/sonar-server/src/main/java/org/sonar/server/platform/PlatformServletContextListener.java index 9cee68b1261..80177dc82cc 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/PlatformServletContextListener.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/PlatformServletContextListener.java @@ -51,7 +51,7 @@ public final class PlatformServletContextListener implements ServletContextListe public void contextInitialized(ServletContextEvent event) { try { - configureLogback(event); + //configureLogback(event); Properties props = new Properties(); ServletContext context = event.getServletContext(); Enumeration paramKeys = context.getInitParameterNames();