前言
代码运行日志对于项目来说十分重要。本文记录的是 SpringBoot 与 Log4j2 的整合配置过程,至于其他日志框架和 Log4j2 的对比,小伙伴们可自行查阅资料。
环境
- JDK 8
- Gradle 6.7
准备
排除 Logback 依赖
先排除 SpringBoot 默认使用的 Logback 日志框架,在 build.gradle
里添加下面的配置。
configurations {
implementation.exclude module: 'spring-boot-starter-logging'
}
引入 Log4j2 依赖
我们采用 Log4j2 支持的 YAML 格式配置文件,支持该格式需要加入 jackson-dataformat-yaml
依赖,详情可查阅文档。
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml'
}
了解
日志等级
Standard Level | Int Level |
---|---|
OFF | 0 |
FATAL | 100 |
ERROR | 200 |
WARN | 300 |
INFO | 400 |
DEBUG | 500 |
TRACE | 600 |
ALL | Integer.MAX_VALUE |
级别从低到高分别是:ALL
、TRACE
、DEBUG
、INFO
、WARN
、ERROR
、FATAL
、OFF
但由于我们使用的是 Slf4j
门面,所以 ALL
、FATAL
和 OFF
级别无法使用。可阅读文章 为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback)中的 API 了解日志门面相关知识。
配置文件结构
- Appenders
- Appender
- Layout
- Filter
- Policy
- Strategy
- …
- Appender
- Loggers
- Logger
- RootLogger
Appender
可以理解为「管道」,控制日志保存的位置。下面的其它配置参数都是以 rollingFileAppender
为例。
其他 Appender 相关文档可参考:Log4j2 官方文档 Appender 部分。
Layout
参数 | 说明 |
---|---|
%d | 日志时 |