Logback.xml 是 Logback 日志框架的核心配置文件,用于定义日志的输出格式、级别、存储路径等。以下是关键配置要点和示例:
1. 基础结构
Logback.xml 以 <configuration>
为根节点,包含以下核心组件:
- 变量定义 :通过
<property>
设置全局变量(如日志存储路径)。 - Appender:定义日志输出目标(控制台、文件等)。
- Logger/Root Logger:设置日志级别和关联的 Appender。
示例基础结构:
xml
<configuration>
<property name="LOG_DIR" value="logs"/>
<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>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
2. 常用 Appender 配置
-
控制台输出 (ConsoleAppender):
xml<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd} [%thread] %highlight(%-5level) %logger{15} - %msg%n</pattern> </encoder> </appender>
-
文件滚动输出 (RollingFileAppender):
xml<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_DIR}/app.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_DIR}/app.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender>
3. 日志级别与包过滤
-
设置特定包的日志级别 :
xml<logger name="com.example" level="DEBUG" additivity="false"> <appender-ref ref="FILE"/> </logger>
-
根日志级别 (Root Logger):
xml<root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </root>
4. 高级配置
-
动态加载配置 :通过
scan="true"
和scanPeriod
实现配置文件热更新。xml<configuration scan="true" scanPeriod="60 seconds"> <!-- 其他配置 --> </configuration>
-
调试模式 :启用
debug="true"
可打印 Logback 内部日志。
5. 常见问题解决
- 日志文件不生成:检查文件路径权限或目录是否存在。
- Spring Boot 集成 :建议使用
logback-spring.xml
而非logback.xml
,以支持 Spring 环境变量。 - 版本兼容性:确保 Logback 版本与依赖库(如 SLF4J)匹配。