Author: ceki Date: Thu Jul 31 16:55:51 2008 New Revision: 1085 Modified: slf4j/trunk/slf4j-jdk14/src/main/java/org/slf4j/impl/JDK14LoggerAdapter.java
Log: - added a check before invoking JUL logger. This check improves performance for disabled log statements. Moreover, it is not redundant as callers of the LocationAwareLogger.log method in various bridges do not perform the check (at this time). This fixes bug 90, http://bugzilla.slf4j.org/show_bug.cgi?id=90 Modified: slf4j/trunk/slf4j-jdk14/src/main/java/org/slf4j/impl/JDK14LoggerAdapter.java ============================================================================== --- slf4j/trunk/slf4j-jdk14/src/main/java/org/slf4j/impl/JDK14LoggerAdapter.java (original) +++ slf4j/trunk/slf4j-jdk14/src/main/java/org/slf4j/impl/JDK14LoggerAdapter.java Thu Jul 31 16:55:51 2008 @@ -626,7 +626,7 @@ record.setSourceMethodName(ste.getMethodName()); } } - + public void log(Marker marker, String callerFQCN, int level, String message, Throwable t) { Level julLevel; @@ -650,6 +650,13 @@ throw new IllegalStateException("Level number " + level + " is not recognized."); } - log(callerFQCN, julLevel, message, t); + // the logger.isLoggable check avoids the unconditional + // construction of location data for disabled log + // statements. As of 2008-07-31, callers of this method + // do not perform this check. See also + // http://bugzilla.slf4j.org/show_bug.cgi?id=90 + if(logger.isLoggable(julLevel)) { + log(callerFQCN, julLevel, message, t); + } } } _______________________________________________ dev mailing list dev@slf4j.org http://www.slf4j.org/mailman/listinfo/dev