Merge pull request #37 from wendal/master

完善Logging的封装
This commit is contained in:
温高铁
2012-08-24 07:46:07 -07:00
3 changed files with 28 additions and 23 deletions
@@ -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");
}