diff --git a/src/main/java/com/alibaba/druid/support/logging/Jdk14LoggingImpl.java b/src/main/java/com/alibaba/druid/support/logging/Jdk14LoggingImpl.java index a70a03b567..502790474f 100644 --- a/src/main/java/com/alibaba/druid/support/logging/Jdk14LoggingImpl.java +++ b/src/main/java/com/alibaba/druid/support/logging/Jdk14LoggingImpl.java @@ -25,9 +25,12 @@ public class Jdk14LoggingImpl implements Log { private int errorCount; private int warnCount; private int infoCount; + + private String clazzName; public Jdk14LoggingImpl(Class clazz){ - log = Logger.getLogger(clazz.toString()); + clazzName = clazz.getName(); + log = Logger.getLogger(clazzName); } public boolean isDebugEnabled() { @@ -35,31 +38,31 @@ public class Jdk14LoggingImpl implements Log { } public void error(String s, Throwable e) { - log.log(Level.SEVERE, s, e); + log.logp(Level.SEVERE,clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), s, e); errorCount++; } public void error(String s) { - log.log(Level.SEVERE, s); + log.logp(Level.SEVERE,clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), s); errorCount++; } public void debug(String s) { - log.log(Level.FINE, s); + log.logp(Level.FINE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), s); } public void debug(String s, Throwable e) { - log.log(Level.FINE, s, e); + log.logp(Level.FINE, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), s, e); } public void warn(String s) { - log.log(Level.WARNING, s); + log.logp(Level.WARNING, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), s); warnCount++; } @Override public void warn(String s, Throwable e) { - log.log(Level.WARNING, s, e); + log.logp(Level.WARNING, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), s, e); warnCount++; } @@ -86,7 +89,7 @@ public class Jdk14LoggingImpl implements Log { @Override public void info(String msg) { - log.info(msg); + log.logp(Level.INFO, clazzName, Thread.currentThread().getStackTrace()[1].getMethodName(), msg); infoCount++; } diff --git a/src/main/java/com/alibaba/druid/support/logging/Log4jImpl.java b/src/main/java/com/alibaba/druid/support/logging/Log4jImpl.java index f43112447d..591b08e415 100644 --- a/src/main/java/com/alibaba/druid/support/logging/Log4jImpl.java +++ b/src/main/java/com/alibaba/druid/support/logging/Log4jImpl.java @@ -20,6 +20,8 @@ import org.apache.log4j.Logger; public class Log4jImpl implements Log { + private static final String callerFQCN = Log4jImpl.class.getName(); + private Logger log; private int errorCount; @@ -35,32 +37,31 @@ public class Log4jImpl implements Log { } public void error(String s, Throwable e) { - log.error(s, e); + log.log(callerFQCN, Level.ERROR, s, e); } public void error(String s) { - log.error(s); + log.log(callerFQCN, Level.ERROR, s, null); } public void debug(String s) { - log.debug(s); + log.log(callerFQCN, Level.DEBUG, s, null); } public void debug(String s, Throwable e) { - log.debug(s, e); + log.log(callerFQCN, Level.DEBUG, s, e); } public void warn(String s) { - log.warn(s); + log.log(callerFQCN, Level.WARN, s, null); warnCount++; } public void warn(String s, Throwable e) { - log.warn(s, e); + log.log(callerFQCN, Level.WARN, s, e); warnCount++; } - @Override public int getWarnCount() { return warnCount; } @@ -69,32 +70,30 @@ public class Log4jImpl implements Log { return errorCount; } - @Override public void resetStat() { errorCount = 0; warnCount = 0; infoCount = 0; } - @Override public boolean isInfoEnabled() { return log.isInfoEnabled(); } - @Override public void info(String msg) { infoCount++; - log.info(msg); + log.log(callerFQCN, Level.INFO, msg, null); } - @Override public boolean isWarnEnabled() { return log.isEnabledFor(Level.WARN); } - @Override public int getInfoCount() { return infoCount; } + public String toString() { + return log.toString(); + } } diff --git a/src/main/java/com/alibaba/druid/support/logging/LogFactory.java b/src/main/java/com/alibaba/druid/support/logging/LogFactory.java index b2d7aaa36f..4ca712a54d 100644 --- a/src/main/java/com/alibaba/druid/support/logging/LogFactory.java +++ b/src/main/java/com/alibaba/druid/support/logging/LogFactory.java @@ -23,10 +23,13 @@ public class LogFactory { private static Constructor logConstructor; static { - tryImplementation("org.apache.commons.logging.LogFactory", - "com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl"); + // TODO add slf4j logging + + //优先选择log4j,而非Apache Common Logging. 因为后者无法设置真实Log调用者的信息 tryImplementation("org.apache.log4j.Logger", "com.alibaba.druid.support.logging.Log4jImpl"); tryImplementation("java.util.logging.Logger", "com.alibaba.druid.support.logging.Jdk14LoggingImpl"); + tryImplementation("org.apache.commons.logging.LogFactory", + "com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl"); tryImplementation("java.lang.Object", "com.alibaba.druid.support.logging.NoLoggingImpl"); }