1、日志简介
日志是程序的重要组成部分,其中最重要的用途是 排除和定位问题,除此之外还可以实现以下功能:
- 记录用户登录日志,方便分析用户是正常登录还是恶意破解用户。
- 记录系统的操作日志,方便数据恢复和定位操作人。
- 记录程序的执行时间,方便为以后优化程序提供数据支持。
2、slf4j
- 日志框架有很多种,包括 log4j、loh4j2、log back、logging…,但是如果使用这些日志框架本身的 api 来打印日志,切换的时候,需要修改所有的日志类和日志方法,很不方便。因此统一使用 slf4j 的日志类/方法,slf4j可以做一个桥接/转换,只需要引入使用的日志框架依赖包即可。
- 使用方式:引入slf4j + 某个实现的依赖包,代码中使用 slf4j 的日志类/方法,日志的配置文件中,就使用具体实现需要的配置文件和内容。
- 作用:支持同一份代码,在不同环境中,选择打印的日志级别,如生产环境一般只打印错误信息,开发环境打印调试信息、警告和错误信息。还可以通过配置,达到更加强大的功能,如输出到文件、数据库等。
3、日志级别
日志级别是为了筛选符合目标的日志信息。日志的级别分为:
- trace:微量,少许的意思,级别最低。
- info:普通的打印信息。
- debug:需要调试时候的关键信息打印。
- warn:警告,不影响使用但需要注意的问题。
- error:错误信息,级别较高的错误日志信息。
- fatal:致命的意思,因为代码异常导致程序退出执行的事件。
默认情况下使用的是 info 日志级别将日志输出到控制台的。
4、自定义打印日志
4.1、得到日志对象
在程序中得到日志对象需要使用日志工厂 LoggerFactory。由于Spring Boot内置了日志框架 slf4j,因此可以直接在程序中调用 slf4j。
4.2、使用日志对象打印日志
如果要自定义打印日志的级别,需要在配置文件中设置“logging.level”配置项,且真实会输出的内容是 配置的日志级别及以上 的。
如果需要配置不同包的日志打印级别,需要在配置文件中指定具体的包。
4.3、日志持久化
如果想要日志进行持久化,可以在配置文件中指定日志的存储目录或者日志保存文件名,Spring Boot 就会将控制台的日志写在相应的目录或文件下了。
4.4、lombok
每次都使用 LoggerFactory.getLogger(xxx.class) 很繁琐,且每个类都添加一遍,也很麻烦,这里讲一种更好用的日志输出方式,使用 lombok 来更简单的输出。
- 添加 lombok 框架支持。
- 使用 @slf4j 注解输出日志。