@slf4j(springboot日志配置slf4j)

http://www.itjxue.com  2023-01-26 07:49  来源:未知  点击次数: 

注解@Slf4j的使用

声明: 如果不想每次都写private? final Logger logger = LoggerFactory.getLogger(当前类名.class);?可以用注解@Slf4j;

1. 使用idea首先需要安装Lombok插件;

2.在pom文件加入lombok的依赖

dependency

???groupIdorg.projectlombok/groupId

???artifactIdlombok/artifactId

????version1.16.16/version!--版本号自己选一个就行--

/dependency

3.类上面添加@Sl4j注解,然后使用log打印日志;

@slf4j注解为什么找不到log变量

1、是因为“slf4j-api-1.6.2.jar”和“slf4j-jdk14-1.5.6.jar”的不兼容问题,将“slf4j-jdk14-1.5.6.jar”删除,下一个“slf4j-jdk14-1.6.2.jar”放在lib目录下,问题就解决了。

2、“slf4j”就是众多接口的集合,它不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定。具体有哪些接口,全部都定义在“slf4j-api”中。“slf4j-log4j12”是链接“slf4j-api”和“log4j”中间的适配器。实现了“slf4japiz”中“StaticLoggerBinder”接口,从而使得在编译时绑定的是“slf4j-log4j12”的“getSingleton()”,“log4j”是具体的日志系统。通过“slf4j-log4j12”初始化“Log4j”,达到最终日志的输出。

3、lombok:一个插件,封装了“log”的“get”和“set”,可以直接使用“log”来输出日志信息。

4、实际上,“SLF4J”所提供的核心“AP”I是一些接口以及一个“LoggerFactory”的工厂类。从某种程度上,“SLF4J”有点类似“JDBC”,不过比“JDBC”简单,在“JDBC”中,你需要指定驱动程序,而在使用“SLF4J”的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用“JDBC”基本不用考虑具体数据库一样,“SLF4J”提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。

当在类上写了一个@Slf4j注解后,类中为何就有了一个log对象?源码是怎么实现的

这个实现,要分以下几个步骤。

你要知道:@(注解)

你要知道:代理

知道这两个,大致的思路就会有了。java代码运行到main方法,会扫描所有的类。通过反射查询到【有@slf4j的类】。然后通过代理,来增强有【有@slf4j的类】(即,在代理类中,创建log对象)

(责任编辑:IT教学网)

更多

相关站内动态文章

推荐站内动态文章