Spring启动linux服务不会旋转日志文件

时间:2017-02-02 07:05:15

标签: logging spring-boot logback

根据spring boot 1.4 docs spring boot自动旋转日志文件,文件大小达到10MB。我在linux机器上部署了spring boot v1.4.2服务,但该文件没有旋转。该文件已达到118 MB,仍然不会自动旋转。

我是否遗漏了文档中的内容或错误?

2 个答案:

答案 0 :(得分:1)

Linux机器上日志轮换的另一个选择是使用带有copytruncate参数的logrotate

  

logrotate旨在简化对生成大量日志文件的系统的管理。它允许自动旋转,压缩,删除和邮寄日志文件。每个日志文件可以每天,每周,每月或当它变得太大时处理。

     

logrotate从命令行中指定的一系列配置文件中读取应处理的日志文件的所有内容。每个配置文件都可以设置全局选项(本地定义覆盖全局选项,后面的定义覆盖之前的定义)并指定要旋转的日志文件。一个简单的配置文件如下所示:

     

<强> copytruncate

     

在创建副本后截断原始日志文件,而不是移动旧日志文件并选择创建新日志文件。当某些程序无法被告知关闭其日志文件时可以使用它,因此可以继续永久地写入(追加)到前一个日志文件。请注意,复制文件和截断文件之间的时间片非常小,因此某些日志记录数据可能会丢失。使用此选项时,create选项将不起作用,因为旧的日志文件保持不变。

将此条目添加到logrotate配置文件

/var/log/spring.log {
    daily
    copytruncate
    rotate 3
    dateext
    notifempty
}

下一步是什么?见How to make log-rotate change take effect?

  

logrotate使用crontab工作。它是预定的工作,而不是守护进程,因此无需重新加载其配置。

答案 1 :(得分:0)

Spring仅为文件追加器旋转日志。对于登录/var/log/spring.log spring,使用控制台appender,无法配置为旋转。只能将文件追加器配置为旋转。除了控制台之外,我最终配置logback-spring.xml以将日志附加到文件中。因此,只要我的/var/log/<>变得太大,我就会删除它。