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