Merge pull request #859 from wenshao/master

support log4j2
This commit is contained in:
高铁
2015-06-07 19:15:21 +08:00
3 changed files with 121 additions and 2 deletions
+14 -2
View File
@@ -400,7 +400,7 @@
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.1.1</version>
<version>3.3.0</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
@@ -415,7 +415,7 @@
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<version>1.2.17</version>
<scope>provided</scope>
</dependency>
<dependency>
@@ -430,6 +430,18 @@
<version>1.6.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
@@ -0,0 +1,106 @@
package com.alibaba.druid.support.logging;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class Log4j2Impl implements Log {
private Logger log;
private int errorCount;
private int warnCount;
private int infoCount;
private int debugCount;
/**
* @since 0.2.21
* @param log
*/
public Log4j2Impl(Logger log){
this.log = log;
}
public Log4j2Impl(String loggerName){
log = LogManager.getLogger(loggerName);
}
public Logger getLog() {
return log;
}
public boolean isDebugEnabled() {
return log.isDebugEnabled();
}
public void error(String s, Throwable e) {
errorCount++;
log.error(s, e);
}
public void error(String s) {
errorCount++;
log.error(s);
}
public void debug(String s) {
debugCount++;
log.debug(s);
}
public void debug(String s, Throwable e) {
debugCount++;
log.debug(s, e);
}
public void warn(String s) {
log.warn(s);
warnCount++;
}
public void warn(String s, Throwable e) {
log.warn(s, e);
warnCount++;
}
public int getWarnCount() {
return warnCount;
}
public int getErrorCount() {
return errorCount;
}
public void resetStat() {
errorCount = 0;
warnCount = 0;
infoCount = 0;
debugCount = 0;
}
public int getDebugCount() {
return debugCount;
}
public boolean isInfoEnabled() {
return log.isInfoEnabled();
}
public void info(String msg) {
infoCount++;
log.info(msg);
}
public boolean isWarnEnabled() {
return log.isEnabled(Level.WARN);
}
public int getInfoCount() {
return infoCount;
}
public String toString() {
return log.toString();
}
}
@@ -27,6 +27,7 @@ public class LogFactory {
// 优先选择log4j,而非Apache Common Logging. 因为后者无法设置真实Log调用者的信息
tryImplementation("org.apache.log4j.Logger", "com.alibaba.druid.support.logging.Log4jImpl");
tryImplementation("org.apache.logging.log4j.Logger", "com.alibaba.druid.support.logging.Log4j2Impl");
tryImplementation("org.slf4j.Logger", "com.alibaba.druid.support.logging.SLF4JImpl");
tryImplementation("org.apache.commons.logging.LogFactory",
"com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl");