1,添加maven配置
<properties>
<log4j2.version>2.11.0</log4j2.version>
<slf4j.version>1.7.25</slf4j.version>
</properties>
<!--slf4j及log4j2日志 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!--桥接器:告诉slf4j使用Log4j2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<!--具体实现,log4j2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
2,继承com.jfinal.log.Log
package cn.iborder.myJFinal.util;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.jfinal.log.Log;
public class Log4j2Log extends Log{
private Logger log;
public Log4j2Log(Class<?> clazz) {
log = LogManager.getLogger(clazz);
}
public Log4j2Log(String name) {
log = LogManager.getLogger(name);
}
@Override
public void debug(String message) {
log.debug(message);
}
@Override
public void debug(String message, Throwable t) {
log.debug(message, t);
}
@Override
public void info(String message) {
log.info(message);
}
@Override
public void info(String message, Throwable t) {
log.info(message, t);
}
@Override
public void warn(String message) {
log.warn(message);
}
@Override
public void warn(String message, Throwable t) {
log.warn(message, t);
}
@Override
public void error(String message) {
log.error(message);
}
@Override
public void error(String message, Throwable t) {
log.error(message, t);
}
@Override
public void fatal(String message) {
log.fatal(message);
}
@Override
public void fatal(String message, Throwable t) {
log.fatal(message, t);
}
@Override
public boolean isDebugEnabled() {
return false;
}
@Override
public boolean isInfoEnabled() {
return false;
}
@Override
public boolean isWarnEnabled() {
return false;
}
@Override
public boolean isErrorEnabled() {
return false;
}
@Override
public boolean isFatalEnabled() {
return false;
}
}
3,实现com.jfinal.log.ILogFactory接口
package cn.iborder.myJFinal.util;
import com.jfinal.log.ILogFactory;
import com.jfinal.log.Log;
public class Log4j2Factory implements ILogFactory{
public Log4j2Factory() {
// TODO Auto-generated constructor stub
}
@Override
public Log getLog(Class<?> clazz) {
// TODO Auto-generated method stub
return new Log4j2Log(clazz);
}
@Override
public Log getLog(String name) {
// TODO Auto-generated method stub
return new Log4j2Log(name);
}
}
4,配置JfinalConfig继承类
@Override
public void configConstant(Constants me) {
// TODO Auto-generated method stub
me.setDevMode(true);
me.setLogFactory(new Log4jLogFactory());
}
接下来就可以使用了
Log.getLog(this.getClass()).debug("hello world");