Logback 常用配置详解
1. 配置文件解析
Logback 是 Spring Boot 默认使用的日志框架,Logback 配置主要包含 8 大元素
1.1 configuration
Logback 配置文件的根元素,它包含所有的配置信息
1.2 appender
定义一个 Appender,即日志输出的目的地,如控制器或文件
该元素有一个必须的 name 属性,和一个 class 属性,指定 Appender 的实现类
1.3 encoder
定义日志输出格式,它包含在 Appender 元素中,可以使用 pattern 属性定义输出格式,也可以使用 layout 子元素指定一个 Layout 类
1.4 logger
定义一个 Logger,它有一个 name 属性,表示 Logger 的名称,也可以使用通配符匹配多个 Logger
1.5 root
定义根 Logger,通常用于设置默认的日志级别和输出目的地
1.6 level
定义日志级别,可以包含在 Logger 或 Appender 元素中
Logback 定义了七个日志级别,按照从低到高的顺序,分别是 TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF
1.7 filter
定义一个过滤器,可以用来过滤日志信息,可以包含在 Logger 或 Appender 元素中
1.8 rollingPolicy 和 triggeringPolicy
定义 Appender 的滚动策略和触发策略
- 滚动策略:指定何时创建新的日志文件
- 触发策略:指定何时触发滚动策略
2. 示例
这个配置文件定义了两个 Appender:一个输出到控制台,另一个输出到日志文件。
日志文件使用了时间滚动和文件大小限制策略,同时也定义了一个 Logger 和根 Logger 的输出目的地和日志级别。
<?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> |