Spring中的日志
日志
了解一下 (有个印象)
门面模式 (外观模式)
含有两种角色:
- Facade (外观角色 / 门面角色): 系统对外的统一接口。
- SubSystem (子系统角色): 可以含有多个子系统,每个子系统都不是单独的类,而是一个类的集合。
Facade
对SubSystem
是透明的,相当于一个客户端。
门面实现(用开关灯来举例子)
门面
门面模式的优点
- 实现客户端与子系统的耦合关系,减少相互依赖,子系统的变化不会影响到客户端。
- 客户端无需关心子系统的使用,只需要与门面对象交互即可。
- 提高了安全性,可以灵活地设置访问权限,如不在门面对象开通方法,就无法访问。
日志级别
日志的级别从高到低依次为:FATAL
、ERROR
、WARN
、INFO
、DEBUG
、TRACE
。
- FATAL: 致命信息,表示需要立即被处理的系统级错误。
- ERROR: 错误信息,级别较高的错误日志信息,但仍然不影响系统的继续运行。
- WARN: 警告信息,不影响使用,但需要注意的问题。
- INFO: 普通信息,用于记录应用程序正常运行时的一些信息,例如系统启动完成,请求处理完成等。
- DEBUG: 调试信息,需要调试时的关键日志打印。
- TRACE: 跟踪信息,比 DEBUG 更细粒度的日志事件 (除非有特殊用途,否则请使用 DEBUG 级别替代)。
设置日志级别
打印验证,发现 debug
和 trace
的日志都没有被打印出来。 说明级别比 info
低的都不会被打印。
通过修改 yml
的权限可以打印出 debug
和 trace
的。
此时可以在图上发现 debug
的。
配置文件设置比如 debug
, 级别 >= debug
的都会打印。
我们也可以按照路径去设置。
开始是没有的, 当我们访问了以后就会出现, 以上日志。
日志持久化 -> 存储日志
在配置文件中配置,要保持对齐,以上有相同的要删去。
#设置日志文件的文件名
logging:
file:
name: logger/springboot.log
刷新一下, 会看到自动生成了一个文件存储日志
前面我们设置的是名字, 现在我们来设置 path
修改一下, 发现会自动生成文件, 里面的名字不是springboot, 而是spring.log
最后来对比一下path, name 发生冲突会优先选择哪一个
交换 name 和 path 的顺序一样生成 name, 说明 name 的优先级更高
日志文件的分割
https://springdoc.cn/spring-boot/application-properties.html#application-properties.core.logging.logback.rollingpolicy.max-file-size
通过这个链接可以得知如何配置
在配置文件中加入, 大小可以自己选择, 我们选择 1KB
可以看到左上角会出现
也可以修改命名, 根据文档里面的信息加入
发现命名与第一个不一样
更简单的日志输出
通过注解来打印日志
使用 @Slf4j 注解
该注解会自动创建一个名叫 log 的 Logger 对象
发现能正常打印出来