Logback 常用配置详解
logback.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<contextName>logback</contextName>
<!-- 定义日志变量-->
<property name="log.path" value="D:\\logback.log" />
<!--日志输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<!-- 日志输出到文件 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
</encoder>
</appender>
<!-- 根日志输出级别-->
<root level="debug">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<!-- 指定包日志输出级别-->
<logger name="com.binge" level="debug" />
</configuration>
配置文件解析
Logback 是 Spring Boot 默认使用的日志框架,Logback 配置主要包含 8 大元素
configuration
Logback 配置文件的根元素,它包含所有的配置信息
appender
定义一个 Appender,即日志输出的目的地,如控制器或文件
该元素有一个必须的 name 属性,和一个 class 属性,指定 Appender 的实现类
encoder
定义日志输出格式,它包含在 Appender 元素中,可以使用 pattern 属性定义输出格式,也可以使用 layout 子元素指定一个 Layout 类
logger
定义一个 Logger,它有一个 name 属性,表示 Logger 的名称,也可以使用通配符匹配多个 Logger
root
定义根 Logger,通常用于设置默认的日志级别和输出目的地
一个 Logger 只能有一个父 Logger,如果没有指定父 Logger,则默认为根 Logger
level
定义日志级别,可以包含在 Logger 或 Appender 元素中
Logback 定义了七个日志级别,按照从低到高的顺序,分别是 TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF
filter
定义一个过滤器,可以用来过滤日志信息,可以包含在 Logger 或 Appender 元素中
rollingPolicy 和 triggeringPolicy
定义 Appender 的滚动策略和触发策略
- 滚动策略:指定何时创建新的日志文件
- 触发策略:指定何时触发滚动策略
Logback 完整配置文件示例
这个配置文件定义了两个 Appender:一个输出到控制台,另一个输出到日志文件。
日志文件使用了时间滚动和文件大小限制策略,同时也定义了一个 Logger 和根 Logger 的输出目的地和日志级别