什么是 logback.xml?
logback.xml 是 Logback 日志框架的核心配置文件,用于定义日志输出格式、级别、目标(控制台、文件等)以及附加器(Appender)等行为。
Logback 是 SLF4J 的原生实现之一,广泛用于 Java 应用中。
基本结构示例
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
常用配置项说明
- <configuration>:根元素,所有配置都包含在其中。
- <appender>:定义日志输出目的地,如控制台(ConsoleAppender)、文件(FileAppender)等。
- <encoder>:指定日志格式,通常使用
PatternLayoutEncoder。 - <root>:根日志记录器,设置默认日志级别和引用的 appender。
- <logger>:为特定包或类设置独立的日志级别和 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>100MB</maxFileSize>
<maxHistory>30</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
小贴士
- 修改
logback.xml后,大多数应用会自动重载配置(需启用scan="true")。 - 建议将日志级别在生产环境中设为
WARN或ERROR,避免性能损耗。 - 使用
%logger{length}可缩短类名显示,提升可读性。