Log4j 配置
接下来简单讲解一下 Log4j 的配置,因为最近的学习当中会使用到,所以在这里记录一下
前置操作
下载
通过 maven 进行拉取相关的依赖
1 | <!-- https://mvnrepository.com/artifact/log4j/log4j --> |
创建 log4j.properties 文件
到 src/main/resources 目录下创建 log4j.properties

配置文件解析
根配置 [rootLogger]
1 | log4j.rootLogger=<level>,appenderName ... |
level 表示日志等级
appenderName 表示输出的位置,可以是一个或多个
比如以下配置就是将 DEBUG 日志等级的信息输出到控制台和文件
1 | log4j.rootLogger=DEBUG,Console,File |
补充:
Console和File可以任意取名,只需要跟后面的log4j.appender.xxx的xxx部分对应即可
日志等级
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
级别越低包含内容越多
| 级别 | 描述 |
|---|---|
| ALL | 所有级别的信息 |
| TRACE | 比 DEBUG 更详细的信息 |
| DEBUG | 调试信息 |
| INFO | 普通信息 |
| WARN | 可能会出现潜在错误的警告信息 |
| ERROR | 不影响系统的继续运行的错误信息 |
| FATAL | 将会导致应用程序的退出的严重错误事件信息 |
| OFF | 用于关闭所有日志记录 |
输出类型 [appender]
| 类型 | 描述 |
|---|---|
| org.apache.log4j.ConsoleAppender | 控制台 |
| org.apache.log4j.FileAppender | 文件 |
| org.apache.log4j.DailyRollingFileAppender | 每天产生一个日志文件 |
| org.apache.log4j.RollingFileAppender | 文件大小到达指定尺寸的时候产生一个新的文件 |
| org.apache.log4j.WriterAppender | 将日志信息以流格式发送到任意指定的地方 |
使用方式大概如下
1 | log4j.rootLogger=DEBUG,Console,File |
信息格式 [layout]
| 格式 | 描述 |
|---|---|
| org.apache.log4j.HTMLLayout | 输出 HTML 表格代码 |
| org.apache.log4j.PatternLayout | 自定义格式输出 |
| org.apache.log4j.SimpleLayout | 输出级别和信息 |
| org.apache.log4j.TTCCLayout | 输出线程、级别、类名、信息 |
使用方法如下
1 | # 控制台输出,信息格式是 org.apache.log4j.SimpleLayout |
输出信息大概如下
1 | INFO - xxxx |
自定义格式的用法
org.apache.log4j.PatternLayout 的格式
| 格式 | 描述 |
|---|---|
| %m | 消息 |
| %n | 换行 |
| %d | 时间,可以指定格式,如 %d{yyyy-MM-dd HH:mm:ss,SSS} |
| %t | 线程名 |
| %p | 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL |
| %c | 类名 |
| %M | 方法名 |
| %r | 耗费时间,毫秒 |
| %l | 代码所在位置 |
用法如下
1 | # 控制台输出,信息格式是 org.apache.log4j.PatternLayout |
输出信息大概如下
1 | HH:mm:ss [INFO] xxxx |
输出等级 [Threshold]
相当于过滤,只输出指定级别的内容到指定位置
比如说控制台中只输出 DEBUG 级别的信息
1 | # 文件输出 |
补充:
Threshold的等级不能比根配置log4j.rootLogger低级,所以尽量使用较低的等级,【回顾日志等级 】
追加内容-[Append]
往旧的日志文件中追加内容
如果为 true 表示开启,会将新的内容追加到旧的日志文件
如果为 false 表示关闭,会将新的内容覆盖到旧的日志文件
默认是 true
1 | log4j.appender.File=org.apache.log4j.FileAppender |
内容补充
MaxFileSize 设置日志文件大小,仅 RollingFileAppender 可用
1 | log4j.appender.File=org.apache.log4j.RollingFileAppender |
File 设置日志文件输出位置
1 | log4j.rootLogger=DEBUG,ErrorFile |
参考自以下内容
哔哩哔哩:https://www.bilibili.com/video/BV1jt411T7zt