1、pom.xml
properties标签中定义log4j和slf4j的版本号
<log4j.version>1.2.17</log4j.version>
<slf4j.version>1.7.25</slf4j.version>
<!-- log4j start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log4j end -->
2、log4j.properties
resources目录下配置log4j.properties文件
### 设置日志级别###
log4j.rootLogger = debug,stdout
#log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
#### 输出DEBUG 级别以上的日志到=E://logs/error.log ###
#log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.D.File = E://logs/log.log
#log4j.appender.D.Append = true
#log4j.appender.D.Threshold = DEBUG
#log4j.appender.D.layout = org.apache.log4j.PatternLayout
#log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#
#### 输出ERROR 级别以上的日志到=E://logs/error.log ###
#log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.E.File =E://logs/error.log
#log4j.appender.E.Append = true
#log4j.appender.E.Threshold = ERROR
#log4j.appender.E.layout = org.apache.log4j.PatternLayout
#log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
3、使用方法
3.1 传统的调用方法
使用private static Logger logger = LoggerFactory.getLogger(TestLog4jClass.class);
演示:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @program: test1
* @description:
* @author: Liu Tao
* @create: 2021-11-16 17:42
**/
public class TestLog4jClass {
private static Logger logger = LoggerFactory.getLogger(TestLog4jClass.class);
public void save(){
logger.debug("debug日志");
logger.info("info日志");
logger.error("error日志");
logger.warn("warn日志");
}
}
3.2使用slf4j Lombok注解
加入lombok的依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</dependency>
使用@Slf4j注解,在类名加@Slf4j,方法中默认是log调用。
演示类:
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @program: test1
* @description:
* @author: Liu Tao
* @create: 2021-11-16 17:42
**/
@Slf4j
public class TestLog4jClass2 {
public void save(){
log.debug("debug日志");
log.info("info日志");
log.error("error日志");
log.warn("warn日志");
}
}
在Junit中测试输出:
[DEBUG] 2021-11-16 18:02:23,547 method:TestLog4jClass2.save(TestLog4jClass2.java:15)
debug日志
[INFO ] 2021-11-16 18:02:23,549 method:TestLog4jClass2.save(TestLog4jClass2.java:16)
info日志
[ERROR] 2021-11-16 18:02:23,550 method:TestLog4jClass2.save(TestLog4jClass2.java:17)
error日志
[WARN ] 2021-11-16 18:02:23,550 method:TestLog4jClass2.save(TestLog4jClass2.java:18)
warn日志
进程已结束,退出代码0