logback-spring.xml配置归档
时间: 2024-12-25 11:21:34 浏览: 10
### 配置Logback实现日志归档
为了实现在 `logback-spring.xml` 中的日志归档功能,可以利用 Logback 提供的强大配置选项来设置滚动策略和归档路径。下面是一个详细的例子说明如何配置每日生成一个新的日志文件并保存旧的日志文件。
#### 日志归档配置实例
通过 `<rollingPolicy>` 和 `<triggeringPolicy>` 来控制何时以及怎样创建新的日志文件,并将过期的日志文件移动到指定位置存档:
```xml
<configuration>
<!-- 定义日志文件的位置 -->
<property name="LOG_PATH" value="./logs"/>
<!-- 控制台输出 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 文件输出 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/myapp.log</file> <!-- 当前使用的日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 归档后的日志文件名模式 -->
<fileNamePattern>${LOG_PATH}/archived/myapp-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<!-- 设置最大历史天数,默认为无限制 -->
<maxHistory>30</maxHistory>
<!-- 单个日志文件大小达到多少时触发新文件的创建 -->
<timeBasedFileNamingAndTriggeringPolicies>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</timeBasedFileNamingAndTriggeringPolicies>
</rollingPolicy>
<encoder>
<pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
<!-- 只记录INFO级别以上的消息 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- root logger configuration -->
<root level="debug">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
```
此配置会每天凌晨自动切换一次日志文件,并且当单个日志文件超过设定的最大尺寸 (这里是 10 MB) 后也会立即分割成多个较小的部分[^1]。此外还设置了最多保留最近 30 天的历史日志文件,超出部分会被删除以节省磁盘空间。
阅读全文