返回
日志组件 Logback 配置介绍
直接以代码的形式,进行注释说明,如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="" debug="false">
<substitutionProperty name="log.base" value="/home/project/logs"/>
<property name="maxHistory" value="30" />
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date [%thread] %-5level %logger{80} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level value="DEBUG"/>
</filter>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<charset>UTF-8</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.base}/core/log.%d{yyyy-MM-dd}_core_%i.log</FileNamePattern>
<maxHistory>${maxHistory}</maxHistory>
<timeBaseFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBaseFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="com.logback.base.dao" level="debug" additivity="false">
<appender-ref ref="stdout"/>
</logger>
<root level="debug">
<appender-ref ref="stdout"/>
</root>
</configuration>
针对其中的属性一一介绍:
属性/标签 | 说明 | 默认值 |
---|---|---|
configuration | 根节点配置标签 | |
scan | 开启动态加载配置 | true |
scanPeriod | 加载时间间隔 | 60 seconds |
debug | loback 内部信息 | false |
substitutionProperty | 替换的变量 | |
name | 变量名称 | |
value | 变量值 | |
property | 变量定义 | |
name | 变量名称 | ${} 来使用 |
value | 变量值 | |
file | 引入配置文件 (可选) | |
appender | 日志输出策略组件 | |
name | 自定义名称 | |
class | 日志输出策略组件实现类 | 可选见下图 |
encoder | 编码格式 | ch.qos.logback.classic.encoder.PatternLayoutEncoder |
pattern | 输出格式 | 见下文参考格式 |
charset | 字符编码设置 | |
filter | 过滤器, | |
class | 过滤器实现类 | eg:LevelFilter / ThresholdFilter / EvaluatorFilter |
level | 过滤级别 | |
value | 可选:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF | |
rollingPolicy | 滚动生成方法配置 | |
class | 指定滚动策略执行类 | |
FileNamePattern | 文件格式配置含文件名, 根据配置的时间单位来进行配置滚动策略 | |
maxHistory | 历史文件保留时间 | 如果是按月滚动,6 则为 6 个月历史记录,之前旧的会删除 |
timeBaseFileNamingAndTriggeringPolicy | 配置触发策略,类似阈值触发 | |
class | 配置触发策略实现类 | eg:SizeAndTimeBasedFNATP 大小 |
maxFileSize | 允许日志文件单位大小 | eg:10MB |
logger | 指定位置日志级别以及输出策略 / root 和 logger 相同但是 root 作用在全局位置 | |
name | 某一个包或者具体的某一个类 | eg:com.baidu.spring.service |
level | 日志级别,忽略大小写 | 可选:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF |
additivity | 是否向上级 loger 传递打印信息 | true |
appender-ref | 引用日志输出策略 | 可配置 0 或多个 |
ref | 指定引用名称,等于 appender 中的 name 值 |
另外后台可以使用 Lombok 注解方式,实现日志写入,
@Slf4j
public class xxx {
private void method() {
log.error("this is error log...");
}
}
对比代码中写的System.out.println();
,logback 使用会更丰富,代码更规范,功能更强大,可能你了解它能将日志保存到指定文件,另外它还可以将日志信息配置发送到指定邮箱,配置日志信息存入数据库等。
以上是一些常规的配置介绍。
Appender 日志输出策略种类一览:
- pattern 格式语法 https://logback.qos.ch/manual/layouts.html
- 参考官方文档:https://logback.qos.ch/manual/appenders.html
(全文完)