You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2015/10/08 10:47:51 UTC

svn commit: r1707450 - /qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/logging/Slf4jLoggingHandler.java

Author: rgodfrey
Date: Thu Oct  8 08:47:51 2015
New Revision: 1707450

URL: http://svn.apache.org/viewvc?rev=1707450&view=rev
Log:
QPID-6749 : Optimise the retrieval of logback loggers based on name

Modified:
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/logging/Slf4jLoggingHandler.java

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/logging/Slf4jLoggingHandler.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/logging/Slf4jLoggingHandler.java?rev=1707450&r1=1707449&r2=1707450&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/logging/Slf4jLoggingHandler.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/logging/Slf4jLoggingHandler.java Thu Oct  8 08:47:51 2015
@@ -23,6 +23,8 @@ package org.apache.qpid.server.store.ber
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import java.util.logging.ErrorManager;
 import java.util.logging.Formatter;
 import java.util.logging.Handler;
@@ -36,6 +38,8 @@ import org.slf4j.LoggerFactory;
 
 public class Slf4jLoggingHandler extends Handler
 {
+    private final ConcurrentMap<String,Logger> _loggers = new ConcurrentHashMap<>();
+
     public Slf4jLoggingHandler(final String prefix)
     {
         setFormatter(new Formatter()
@@ -151,7 +155,7 @@ public class Slf4jLoggingHandler extends
     public void publish(final LogRecord record)
     {
         MappedLevel level = convertLevel(record);
-        final Logger logger = LoggerFactory.getLogger(record.getLoggerName());
+        final Logger logger = getLogger(record.getLoggerName());
         if (level.isEnabled(logger))
         {
 
@@ -176,6 +180,17 @@ public class Slf4jLoggingHandler extends
         }
     }
 
+    private Logger getLogger(String loggerName)
+    {
+        Logger logger = _loggers.get(loggerName);
+        if(logger == null)
+        {
+            logger = LoggerFactory.getLogger(loggerName);
+            _loggers.putIfAbsent(loggerName, logger);
+        }
+        return logger;
+    }
+
     private MappedLevel convertLevel(LogRecord record)
     {
         if (record.getLevel() == Level.SEVERE && record.getLoggerName().equals(Cleaner.class.getName()) && record.getMessage().startsWith("Average cleaner backlog has grown from"))
@@ -191,7 +206,7 @@ public class Slf4jLoggingHandler extends
     {
         MappedLevel mappedLevel = convertLevel(record.getLevel());
 
-        return mappedLevel.isEnabled(LoggerFactory.getLogger(record.getLoggerName()));
+        return mappedLevel.isEnabled(getLogger(record.getLoggerName()));
     }
 
     private MappedLevel convertLevel(final Level level)



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org