要将 Spring Boot 的输出信息按天写入日志文件,你可以使用 Logback
作为日志框架,结合 TimeBasedRollingPolicy
来实现按天滚动日志文件。
配置步骤
1. 引入 Logback 依赖
Spring Boot 默认已经包含了 Logback 的依赖,所以通常不需要额外引入。如果你使用了其他日志框架,可以在 pom.xml
中引入 Logback 依赖:
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId>
</dependency>
2. 配置 logback-spring.xml
在 Spring Boot 项目的 resources
目录下创建或修改 logback-spring.xml
文件,添加按天滚动的配置:
<configuration><property name="LOG_PATH" value="logs" /><property name="LOG_FILE_NAME" value="application" /><!-- 控制台输出 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 文件输出,按天生成 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 注意这里移除了 <file> 元素 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件按天滚动 --><fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern><!-- 保留30天的日志文件 --><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>
3. 配置解释
<file>
:指定日志文件的路径和名称,例如logs/app.log
。<rollingPolicy>
:配置日志滚动策略,这里使用TimeBasedRollingPolicy
,按日期生成日志文件。<fileNamePattern>
:指定滚动后的日志文件命名模式,如logs/app.%d{yyyy-MM-dd}.log
,将按日期生成不同的日志文件。<maxHistory>
:指定保留历史日志文件的天数,超过这个天数的日志文件将被删除。
4. 启动项目
配置好之后,启动 Spring Boot 项目,日志将按天生成不同的日志文件。例如,2024-08-26
日的日志文件将命名为 app.2024-08-26.log
。
这套配置可以帮助你将 Spring Boot 的日志按天保存到不同的文件中,并且根据需要设置保留历史日志的时间长度。