1 原始日志用法
springboot项目中使用@Slf4j,一般如下:
private static final Logger log = LoggerFactory.getLogger(xxx.class);
log.info("");
缺点:
每个类中需要根据类名去实例化,比较繁琐。
2 优化版
引入lombok后,直接在类上注解。遵循了Sping Boot约定大于配置的原则。
2.1 引入pom包:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
ps, IDEA需要在安装lombok插件。
2.2 使用
引入lombok后,可直接在类头加注解@slf4j,可以开始使用实例化的log了。
示例如下:
@Slf4j(topic = "meta.sync") //topic作用是对日志基于自己需求分类,默认是以类名分类的
public class MetaSync {
...
log.info("start...");
}
topic作用是对日志基于自己需求分类,默认是以类名分类的,下面是它的源码:
public @interface Slf4j {
/** @return The category of the constructed Logger. By default, it will use the type where the annotation is placed. */
String topic() default "";
}
2.3 对比
不妨直观的看一下加@topic注解的前后对比吧:
@Slf4j(topic = “meta.sync”) 打印的日志会展示如下:
91 2019-12-16 03:09:49,700 INFO [http-nio-0.0.0.0-7988-exec-2] meta.sync : start..
@Slf4j 打印日志格式如下:
92 2019-12-16 03:09:49,700 INFO [http-nio-0.0.0.0-7988-exec-2] sync.MetaSync : start...
当然lombok的可用之处还很多,例如减少实体类的get、set方法及构造函数等。后续有时间再做介绍。