You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by gc...@apache.org on 2015/02/04 23:04:02 UTC

svn commit: r1657417 - in /lucene/dev/trunk/solr/core/src: java/org/apache/solr/core/SolrCore.java test/org/apache/solr/handler/RequestLoggingTest.java

Author: gchanan
Date: Wed Feb  4 22:04:02 2015
New Revision: 1657417

URL: http://svn.apache.org/r1657417
Log:
SOLR-6919: Use separate logger for SolrCore request logging

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/RequestLoggingTest.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1657417&r1=1657416&r2=1657417&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/SolrCore.java Wed Feb  4 22:04:02 2015
@@ -162,7 +162,8 @@ public final class SolrCore implements S
   public static Map<SolrCore,Exception> openHandles = Collections.synchronizedMap(new IdentityHashMap<SolrCore, Exception>());
 
   
-  public static Logger log = LoggerFactory.getLogger(SolrCore.class);
+  public static final Logger log = LoggerFactory.getLogger(SolrCore.class);
+  public static final Logger requestLog = LoggerFactory.getLogger(SolrCore.class.getName() + ".Request");
 
   private String name;
   private String logid; // used to show what name is set
@@ -1998,9 +1999,9 @@ public final class SolrCore implements S
 
     preDecorateResponse(req, rsp);
 
-    if (log.isDebugEnabled() && rsp.getToLog().size() > 0) {
+    if (requestLog.isDebugEnabled() && rsp.getToLog().size() > 0) {
       // log request at debug in case something goes wrong and we aren't able to log later
-      log.debug(rsp.getToLogAsString(logid));
+      requestLog.debug(rsp.getToLogAsString(logid));
     }
 
     // TODO: this doesn't seem to be working correctly and causes problems with the example server and distrib (for example /spell)
@@ -2012,8 +2013,8 @@ public final class SolrCore implements S
     postDecorateResponse(handler, req, rsp);
 
     if (rsp.getToLog().size() > 0) {
-      if (log.isInfoEnabled()) {
-        log.info(rsp.getToLogAsString(logid));
+      if (requestLog.isInfoEnabled()) {
+        requestLog.info(rsp.getToLogAsString(logid));
       }
 
       if (log.isWarnEnabled()) {

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/RequestLoggingTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/RequestLoggingTest.java?rev=1657417&r1=1657416&r2=1657417&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/RequestLoggingTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/RequestLoggingTest.java Wed Feb  4 22:04:02 2015
@@ -28,53 +28,56 @@ import org.apache.log4j.SimpleLayout;
 import org.apache.log4j.WriterAppender;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.core.SolrCore;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 public class RequestLoggingTest extends SolrTestCaseJ4 {
-  private static final Logger solrLogger = Logger.getLogger(SolrCore.class);
-  
-  private Level oldLevel;
-  
-  private Appender appender;
-  
   private StringWriter writer;
-  
+  private Appender appender;
+
   @BeforeClass
   public static void beforeClass() throws Exception {
     initCore("solrconfig.xml", "schema.xml");
   }
-  
+
   @Before
-  public void setupLogger() {
-    oldLevel = solrLogger.getLevel();
-    solrLogger.setLevel(Level.DEBUG);
-    
+  public void setupAppender() {
     writer = new StringWriter();
     appender = new WriterAppender(new SimpleLayout(), writer);
-    
-    solrLogger.addAppender(appender);
   }
-  
-  @After
-  public void resetLogger() {
-    solrLogger.setLevel(oldLevel);
-    solrLogger.removeAppender(appender);
+
+  @Test
+  public void testLogBeforeExecuteWithCoreLogger() {
+    Logger logger = Logger.getLogger(SolrCore.class);
+    testLogBeforeExecute(logger);
   }
-  
+
   @Test
-  public void testLogBeforeExecute() {
-    assertQ(req("q", "*:*"));
-    
-    String output = writer.toString();
-    Matcher matcher = Pattern.compile("DEBUG.*q=\\*:\\*.*").matcher(output);
-    assertTrue(matcher.find());
-    final String group = matcher.group();
-    final String msg = "Should not have post query information";
-    assertFalse(msg, group.contains("hits"));
-    assertFalse(msg, group.contains("status"));
-    assertFalse(msg, group.contains("QTime"));
+  public void testLogBeforeExecuteWithRequestLogger() {
+    Logger logger = Logger.getLogger("org.apache.solr.core.SolrCore.Request");
+    testLogBeforeExecute(logger);
+  }
+
+  public void testLogBeforeExecute(Logger logger) {
+    Level level = logger.getLevel();
+    logger.setLevel(Level.DEBUG);
+    logger.addAppender(appender);
+
+    try {
+      assertQ(req("q", "*:*"));
+
+      String output = writer.toString();
+      Matcher matcher = Pattern.compile("DEBUG.*q=\\*:\\*.*").matcher(output);
+      assertTrue(matcher.find());
+      final String group = matcher.group();
+      final String msg = "Should not have post query information";
+      assertFalse(msg, group.contains("hits"));
+      assertFalse(msg, group.contains("status"));
+      assertFalse(msg, group.contains("QTime"));
+    } finally {
+      logger.setLevel(level);
+      logger.removeAppender(appender);
+    }
   }
 }