什么是 Logback?
Logback 是由 log4j 创始人 Ceki Gülcü 开发的 Java 日志框架,作为 SLF4J 的原生实现,它性能优异、配置灵活,广泛用于企业级 Java 应用中。
基础配置文件:logback.xml
Logback 默认读取 classpath 下的 logback.xml 文件。以下是一个典型配置示例:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/app.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
关键配置说明
- Appender:定义日志输出目的地(控制台、文件等)。
- Encoder/Pattern:控制日志格式,常用变量如
%d(时间)、%level(级别)、%logger(类名)等。 - RollingFileAppender + TimeBasedRollingPolicy:实现按时间和文件大小滚动归档。
- Root Logger:设置全局日志级别(TRACE, DEBUG, INFO, WARN, ERROR)。
调试与验证配置
在 <configuration> 标签中加入 debug="true" 可输出 Logback 内部状态信息,便于排查配置问题:
<configuration debug="true"> ... </configuration>