mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
完善Logging的封装
This commit is contained in:
@@ -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++;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user