一、引言
这里先说下为什么是用SLF4J,而不是Log4j、Logback
阿里巴巴Java开发手册中:
【强制】应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架
SLF4J中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一
业界老大哥都说了,笔者这个小菜鸟难道还顺着网线过去battle QAQ?
但好歹得弄明白凭啥就【强制】了呗,查阅资料后,大意是因为:
SLF4J是一个日志抽象层,允许你使用任何一个日志系统,并且可以随时切换还不需要动到已经写好的程序,
这对于第三方组件的引入的不同日志系统来说几乎零学习成本了,况且它的优点不仅仅这一个而已,
还有简洁的占位符的使用和日志级别的判断,众所周知的日志读写一定会影响系统的性能,但这些特性都是对系统性能友好的
So,心悦诚服,那么具体看下Spring Boot怎么快速整合吧,这里笔者用Lombok插件提供的注解,就十分优雅
二、导入的Maven依赖
<!--整合lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--整合lombok-->
三、安装插件
在IDEA中(笔者主要使用IDEA),File——>Settings
四、配置相关数据源
# 输出日志
logging:
level:
com: error
file:
path: ./log
注意com为项目路径,不同层级可以配置不同输出等级比如:
# 输出日志
logging:
level:
com.im.service: error
com.im.controller: debug
file:
path: ./log
五、测试
新建创建一个Controller,注意这里就需要使用@Slf4j的注解啦,这里使用配置的只输出error:
@Slf4j
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping(value = "/testSlf4j")
public void testSlf4j() {
log.info("info");
log.debug("debug");
log.error("error");
}
输出的结果只有error,就ok啦:
另外笔者这里是配置了file-path的,日志会输出到指定的磁盘路径中,
也可以用file或者path,但是在spring boot 2.2.6中会提示file或path已经过时了
六、参考
为什么要用 SLF4J
Springboot使用slf4j记录日志和lombok
七、最后
若有不足,敬请指正
虚心若愚,求知若渴
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。