[jboss-svn-commits] JBoss Common SVN: r3344 - slf4j-jboss-logmanager/trunk/src/main/java/org/slf4j/impl.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jul 8 20:29:58 EDT 2009
Author: david.lloyd at jboss.com
Date: 2009-07-08 20:29:58 -0400 (Wed, 08 Jul 2009)
New Revision: 3344
Modified:
slf4j-jboss-logmanager/trunk/src/main/java/org/slf4j/impl/Slf4jLoggerFactory.java
Log:
Use typesafe attachment API to cache SLF4J loggers
Modified: slf4j-jboss-logmanager/trunk/src/main/java/org/slf4j/impl/Slf4jLoggerFactory.java
===================================================================
--- slf4j-jboss-logmanager/trunk/src/main/java/org/slf4j/impl/Slf4jLoggerFactory.java 2009-07-09 00:29:31 UTC (rev 3343)
+++ slf4j-jboss-logmanager/trunk/src/main/java/org/slf4j/impl/Slf4jLoggerFactory.java 2009-07-09 00:29:58 UTC (rev 3344)
@@ -28,7 +28,16 @@
public final class Slf4jLoggerFactory implements ILoggerFactory {
+ private static final org.jboss.logmanager.Logger.AttachmentKey<Logger> key = new org.jboss.logmanager.Logger.AttachmentKey<Logger>();
+
public Logger getLogger(final String name) {
- return new Slf4jLogger(LogContext.getLogContext().getLogger(name));
+ final org.jboss.logmanager.Logger lmLogger = LogContext.getLogContext().getLogger(name);
+ final Logger logger = lmLogger.getAttachment(key);
+ if (logger != null) {
+ return logger;
+ }
+ final Slf4jLogger newLogger = new Slf4jLogger(lmLogger);
+ final Logger appearingLogger = lmLogger.attachIfAbsent(key, newLogger);
+ return appearingLogger != null ? appearingLogger : newLogger;
}
}
More information about the jboss-svn-commits
mailing list