一、背景
我们在日常的项目中,经常会用到日志打印的功能,但是每次我们新创建一个Service或者Controller等类时,都需把下面这段代码拷贝过来,显得比较麻烦。今天介绍一种注解的方式打印日志,个人觉得还是比较方便的。
private final static Logger logger = LoggerFactory.getLogger(xxx.class);
二、介绍
今天介绍的注解是@Slf4j,只需在需要打印的类上面加这个注解,就可以使用log.info()、log.debug()等方法来打印日志了,下面介绍具体怎么使用。
先贴一段代码,对比下有什么区别:
@Slf4j
public class ParentStaticClass {
private final static Logger logger = LoggerFactory.getLogger(ParentStaticClass.class);
/**
* 传统方式的日志打印
*/
@Test
public void testOldLogger(){
logger.info("aaaa");
logger.debug("bbb");
logger.warn("cccc");
}
/**
* 通过@Slf4j注解方式的日志打印
*/
@Test
public void testNewLogger(){
log.info("aaaa");
log.debug("bbb");
log.warn("cccc");
}
}
区别:
1.传统方式日志打印需要定义个logger静态常量,通过LoggerFactory.getLogger(xxx.class)来初始化静态常量logger;然后通过logger来获取对应的方法来打印日志。
2.@Slf4j注解的话,只需要在类上面加上注解就好了,然后直接输入log,就能获取到log对应的方法。
3.前期准备
1.使用@Slf4j注解,首先需要在项目中引入依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
2.在IDEA中安装lombok插件。在file-setting-plugins中输入lombok搜索安装,然后重启IDEA
3.设置Enable annotation processing
4.上面都设置完之后会发现,使用log时找不到info()、debug()、warn()等方法,此时需要引入另外一个依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.8.0-beta2</version>
</dependency>
4.总结
本人在使用的时候,刚开始没有引入slf4j的api,导致使用log时找到info()、debug()、warn()等方法。希望大家在使用的时候注意下这个问题。