目录
1. 日志的作用
日志是程序的重要组成部分,当程序报错是就可以通过,日志来发现和定位问题,并且日志的作用还有
- 记录用户登录日志,方便分析用户是正常登录还是恶意破解用户
- 记录系统的操作日志, 方便数据恢复和定位操作人
- 记录程序的执行时间, 方便为以后优化程序提供数据支持
Spring Boot 项目在启动的时候就有默认的日志输出
如果这个默认的日志输出,就可以发现问题:
- spring内置了日志框架
- 默认情况下,默认情况下, 输出的日志并非是开发者定义和打印的, 那么开发者如何在程序中自定义打印日志
- 日志默认是打印在控制台上的, 但这样是不能被保存的, 那么怎样把日志持久化保存下来
2. 日志的打印
开发者自定义打印日志的实现步骤和spring获取Bean相似
- 在程序中获取到日志对象
- 使用日志对象的相关语法输出要打印的内容
2.1 在程序中获取到日志对象
// 得到日志对象
private static final Logger logger = LoggerFactory.getLogger(UserController.class);
可以看到这里日志打印只出现了三个, 这是因为默认的日志级别是 info 的, 这里只会输出级别大于等于 info 的
3. 日志级别
3.1 日志级别有什么区别
- 快速筛选重要的日志
- 不同环境设置不同日志级别的设置环境
3.2 日志级别的分类
- trace: 微量, 少许, 级别最低
- debug: 调试日志
- info: 普通信息日志
- warn: 警告日志
- error: 错误日志
- fatal: 致命的日志, 系统输出的, 不能自定义打印
从上至下级别依次增加
规则:当程序中设置了日志级别,那么程序只会打印和设置级别相同和大于当前日志级别的日志,小于当前日志的不会打印
3.3 日志级别的设置
# 设置日志级别
logging:
file:
level:
root: xxxx#全局的日志级别 默认:info
4. 日志持久化
日志持久化: 将日志永久的保存到磁盘的某个位置, 有两种方式
- 设置日志的保存目录
- 4.
4.1 设置日志的保存目录
# 设置日志级别
logging:
file:
path: D:\logs #文件的保存目录
日志是追加的,不是覆盖!!
4.2 配置日志文件的文件名
# 设置日志级别
logging:
file:
name: spring-boot.log #设置名称
5.更简单的日志输出-Lombok
每次都使用LoggerFactory.getLogger(xxx.class)很繁琐,且每个类都添加一遍,也很麻烦,我们也有更简单的日志输出方式:Lombok
(1)添加框架依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<optional>true</optional>
</dependency>