Spring Boot2.x教程:(五)日志分割


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

在这里插入图片描述

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定时删除日志了。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值