日志
- 1. 作用
- 2. 日志的使用
- 3. 日志的级别
- 4. 日志的持久化
1. 作用
日志最主要的⽤途就是排除和定位问题。
除了发现和定位问题之外,我们还可以通过⽇志实现以下功能:
- 记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。
- 记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。
- 记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持
2. 日志的使用
我们可以通过 LoggerFactory 获取到日志对象
private static final Logger logger= LoggerFactory.getLogger(TestController.class);
注意:Logger 对象是属于 org.slf4j 包下的,不要导⼊错包。
然后就可以使用 Logger 为我们提供的方法来打印日志, Logger 为我们提供了很多方法我们先用 info() 为例看一下执行结果:
public void test() {
logger.info("Testing");
}
执行结果:
到这里我们在顺便说一下日志的格式:
我们可以看到日志为我们提供了很多信息但是我们最主要的关注点还是日志的打印时间和日志信息, 剩下的了解即可.
3. 日志的级别
⽇志的级别分为:
- trace:微量,少许的意思,级别最低;
- debug:需要调试时候的关键信息打印;
- info:普通的打印信息(默认⽇志级别);
- warn:警告,不影响使⽤,但需要注意的问题;
- error:错误信息,级别较⾼的错误⽇志信息;
- fatal:致命的,因为代码异常导致程序退出执⾏的事件
越往上接收到的消息就越少,如设置了 warn 就只能收到 warn、error、fatal 级别的⽇志
Logger 默认的级别是 info, 所以在不改变日志级别的情况下不会打印 trace 和 debug 级别的信息
我们可以在配置文件中配置日志的级别
此时我们就可以看到日志信息瞬间少了好多:
root 是全局的配置我们也可以对不同的包进行不同的配置
我们还可以提供 lombok 这个神奇的插件来帮我们获取 Logger 对象
使用方法就是在类上边加上 @Slf4j这个注释
它会帮我们自动获取一个名为 log 的 Logger 对象运行代码可以看出和我们上边手动获取对象效果相同
4. 日志的持久化
我们之前的日志信息都是打印在控制台但是当我们程序重启时就会清空, 所以我们就需要将日志信息持久化保存
日志的持久化有两种方式
-
指定保存的路径
当我们执行代码时程序就会自动帮我们生成一个文件
当日志非常多就会占大量内存, 并且在查看时也十分不方便, 所以 Spring 帮我们自动生成的日志文件默认最大为 10MB 超出 10MB 时就会创建一个新的文件. -
指定文件
执行结果: