]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-9069 silence MsSQL driver logs
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Tue, 4 Apr 2017 10:10:45 +0000 (12:10 +0200)
committerEric Hartmann <hartmann.eric@gmail.Com>
Mon, 29 May 2017 07:28:06 +0000 (09:28 +0200)
server/sonar-server/src/main/java/org/sonar/ce/log/CeProcessLogging.java
server/sonar-server/src/main/java/org/sonar/server/app/ServerProcessLogging.java
server/sonar-server/src/main/java/org/sonar/server/app/WebServerProcessLogging.java
server/sonar-server/src/test/java/org/sonar/ce/log/CeProcessLoggingTest.java
server/sonar-server/src/test/java/org/sonar/server/app/WebServerProcessLoggingTest.java

index 039099aba68b806c7209e60c5a420cfb7956745c..bdf681b0c3fecec72e85d1fb21642d42e1709fc1 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.ce.log;
 
+import ch.qos.logback.classic.Level;
 import org.sonar.process.ProcessId;
 import org.sonar.process.logging.LogDomain;
 import org.sonar.process.logging.LogLevelConfig;
@@ -40,6 +41,7 @@ public class CeProcessLogging extends ServerProcessLogging {
     logLevelConfigBuilder.levelByDomain("sql", ProcessId.COMPUTE_ENGINE, LogDomain.SQL);
     logLevelConfigBuilder.levelByDomain("es", ProcessId.COMPUTE_ENGINE, LogDomain.ES);
     JMX_RMI_LOGGER_NAMES.forEach(loggerName -> logLevelConfigBuilder.levelByDomain(loggerName, ProcessId.COMPUTE_ENGINE, LogDomain.JMX));
+    MSQDRIVER_LOGGER_NAMES_TO_TURN_OFF.forEach(loggerName -> logLevelConfigBuilder.immutableLevel(loggerName, Level.OFF));
   }
 
   @Override
index 6f3f8b586ef455c1fe4e119a22bf93887d3a7af1..ec64e4026f04362250a7a2b54721b499b5a82310 100644 (file)
@@ -47,6 +47,11 @@ public abstract class ServerProcessLogging {
     "sun.rmi.transport.misc",
     "sun.rmi.server.call",
     "sun.rmi.dgc");
+  protected static final Set<String> MSQDRIVER_LOGGER_NAMES_TO_TURN_OFF = ImmutableSet.of(
+    "com.microsoft.sqlserver.jdbc.internals",
+    "com.microsoft.sqlserver.jdbc.ResultSet",
+    "com.microsoft.sqlserver.jdbc.Statement",
+    "com.microsoft.sqlserver.jdbc.Connection");
   private final ProcessId processId;
   private final String threadIdFieldPattern;
   private final LogbackHelper helper = new LogbackHelper();
index 98c79054720bbcfa09a908b0fd5edeaaeb0368ca..e06a29973c4eb19fc049c75e229bf0c07b4a4bd4 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.server.app;
 
+import ch.qos.logback.classic.Level;
 import java.util.logging.LogManager;
 import org.slf4j.bridge.SLF4JBridgeHandler;
 import org.sonar.process.ProcessId;
@@ -46,6 +47,8 @@ public class WebServerProcessLogging extends ServerProcessLogging {
     logLevelConfigBuilder.offUnlessTrace("org.apache.catalina.core.ContainerBase");
     logLevelConfigBuilder.offUnlessTrace("org.apache.catalina.core.StandardContext");
     logLevelConfigBuilder.offUnlessTrace("org.apache.catalina.core.StandardService");
+
+    MSQDRIVER_LOGGER_NAMES_TO_TURN_OFF.forEach(loggerName -> logLevelConfigBuilder.immutableLevel(loggerName, Level.OFF));
   }
 
   @Override
index 04bdb5f6e586b3709c0c6302505d434b3935f2e6..2e140fd9baf5fe717322cc978cceaed9ccbf8184 100644 (file)
@@ -31,6 +31,7 @@ import ch.qos.logback.core.joran.spi.JoranException;
 import java.io.File;
 import java.io.IOException;
 import java.util.Properties;
+import java.util.stream.Stream;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.Rule;
@@ -426,6 +427,17 @@ public class CeProcessLoggingTest {
     verifyImmutableLogLevels(context);
   }
 
+  @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));
+  }
+
   private void verifyRootLogLevel(LoggerContext ctx, Level expected) {
     assertThat(ctx.getLogger(ROOT_LOGGER_NAME).getLevel()).isEqualTo(expected);
   }
index 722978a3cab55cf79c79adb96a53bac321d97b5a..2b13839bd55948ed6a1f226313014565e0e6b505 100644 (file)
@@ -31,6 +31,7 @@ import ch.qos.logback.core.joran.spi.JoranException;
 import java.io.File;
 import java.io.IOException;
 import java.util.Properties;
+import java.util.stream.Stream;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.Rule;
@@ -462,6 +463,17 @@ public class WebServerProcessLoggingTest {
     assertThat(context.getLogger("org.apache.catalina.core.StandardService").getLevel()).isNull();
   }
 
+  @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));
+  }
+
   private void verifyRootLogLevel(LoggerContext ctx, Level expected) {
     Logger rootLogger = ctx.getLogger(ROOT_LOGGER_NAME);
     assertThat(rootLogger.getLevel()).isEqualTo(expected);