SpringBoot(三)集成日志
上文中,我们的项目集成了mybatis,并做了个简单的数据库查询操作。
今天我们将日志集成到springboot的项目中
记录应用系统曰志主要有三个方面: 记录操作轨迹、监控系统运行状况、回溯系统故障。当系统发生线上问题时,完整的现场日志有助于工程师快速定位问题。
生产环境禁止输出 DEBUG 曰志且有选择地输出 INFO日志。使用 INFO、WARN 级别来记录业务行为信息时,一定要控制日志输出量,以免磁盘空间不足。同时要为曰志文件设置合理的生命周期及时清理过期的日志。避免重复打印,务必在日志配置文件中设置 additivity=false
一:日志框架分类与选择
日志门面(日志的抽象层) |
日志实现 |
JCL(Jakarta Commons Logging)(2014年后不再维护) jboss-logging (不适合企业项目开发使用) SLF4J(Simple Logging Facade for java) |
Log4j JUL(java.util.logging)(java.util.logging)(担心被抢市场,推出的) Log4j2( apache开发的很强大,借了log4j的名,但很多框架未适配上) Logback(Log4j同一个人开发的新框架,做了重大升级) |
二:日志门面
门面设计模式是面向对象设计模式中的一种,日志框架采用的就是这种模式,类似JDBC 的设计理念。它只提供一套接口规范,自身不负责日志功能的实现。目的是让使用者不需要关注底层具体是哪个日志库来负责日志打印及具体的使用细节等。目前用得最为广泛的曰志门面有两种 slf4j和commons -logging
三:日志库
负责实现日志相关功能,主流日志库有三个,分别为:log4j、log-jdk(java.util.logging.Logger)、logback。logback是最晚出现的,与log4j同一个作者,是log4j的升级版且本身实现了slf4j的接口。
四:SpringBoot默认日志配置
这里我们使用代码来演示一下:
UserController.java