大家好,我是欧阳方超,可以扫描下方二维码关注我的公众号“欧阳方超”,后续内容将在公众号首发。

1、概述
在现代应用程序中,日志管理是至关重要的。它不仅有助于调试和监控应用程序的运行状态,还能帮助我们分析用户行为和系统性能。在这篇博文中,将介绍如何在Spring Boot项目中配置日志,以实现每天生成一个新的日志文件,并仅保留最近7天的日志,自动删除过期的日志文件,当然生成日志文件的频次以及保留最近多少份的日志可以由此衍生。
2、为什么选择Logback
Spring Boot默认使用Logback作为其日志框架。Logback功能强大,支持多种日志输出格式和灵活的日志管理策略,非常适合我们的需求。
首先,我们需要在Spring Boot项目中创建一个Logback配置文件。请按照以下步骤操作:
2.1、创建配置文件
在src/main/resources目录下创建一个名为logback-spring.xml的文件,并添加以下内容:
<configuration>
<!-- <property name="LOG_PATH" value="${LOG_PATH:-${user.home}/logs}"/>-->
<property name="LOG_PATH" value="/data/app/fuyangv2/backend/logs}"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/spring-boot-log.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/spring-boot-log.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory> <!-- 保留最近7天的日志 -->
<totalSizeCap>1GB</totalSizeCap> <!-- 总大小限制 -->
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="FILE"/>
</root>
</configuration>
2.2、配置说明
LOG_PATH
<property name="LOG_PATH" value="${LOG_PATH:-${user.home}/logs}"/>
上述代码定义了日志存储路径。如果未设置环境变量 LOG_PATH,则默认使用用户主目录下的 logs 文件夹,在示例中上面这段代码被注释掉了,采用了把日志路径固定写死的形式。
RollingFileAppender
RollingFileAppender: 这个Appender会根据时间滚动生成新的日志文件。
TimeBasedRollingPolicy
TimeBasedRollingPolicy: 使得每一天生成一个新的日志文件。
: 定义了生成的日志文件名格式。
: 设置最多保留7天的历史日志文件。
: 限制总的日志大小为1GB,以防止占用过多磁盘空间。
2.3、修改应用程序配置
确保在application.yml文件中没有与日志相关的冲突配置。如果需要,可以添加以下行来指定Logback配置:
logging:
config: classpath:logback-spring.xml
2.4、启动应用程序
完成上述配置后,启动Spring Boot应用程序。可以使用以下命令:
nohup java -jar service.jar &
说明
使用 nohup 命令可以让应用在后台运行,即使关闭终端也不会被终止。
日志将自动按照配置生成到指定目录,并且每天都会创建一个新的日志文件,旧的日志文件会在超过7天后被自动删除。
3、总结
通过以上步骤,可以成功地在Spring Boot项目中实现每天生成一个新的日志文件,并且只保留最近7天的日志。这种方式不仅使得日志管理更加高效,还避免了单一大文件带来的管理和性能问题。再也不用使用Linux中的crontab定时删除日志了。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。