我正在将SpringBoot2.0.0-RC1应用程序部署为init.d服务,但我不知道如何配置日志旋转。这个应用程序记录到/var/log/appname.log,但是如果我配置log旋转,日志记录会在旋转之后停止,因为创建了一个新文件,并且嵌入式脚本中定义的stdout/stderr重定向不再工作。
如果在日志系统中配置日志旋转,有两个问题:无法在/var/log中创建文件,而且在嵌入式脚本中仍然定义了重定向。
解决这个问题的正确方法是什么?
发布于 2018-02-14 11:21:01
我在几个应用程序中也面临着同样的问题,添加copytruncate param是解决方案,因为您的Spring应用程序不理解文件已经更改(截断),并且充当一个tail -f命令(有关详细信息,请参阅“尾巴”命令的“-f”参数是如何工作的? )。
示例:
/opt/payara41/glassfish/domains/domain1/logs/* {
daily
copytruncate
rotate 3
dateext
notifempty
}抄写 创建副本后,将原始日志文件截断到零大小,而不是移动旧日志文件并可选择创建新日志文件。当某个程序无法被告知关闭它的日志文件时,可以使用它,因此可能会永远地将其写入(附加)到前一个日志文件。请注意,从复制文件到截断文件之间有很小的时间间隔,因此可能会丢失一些日志数据。当使用此选项时,创建选项将不会产生任何效果,因为旧的日志文件将保持在原处。
发布于 2018-02-08 16:00:06
我找到了解决方案,它是在对数旋转中复制截断的选项。
https://stackoverflow.com/questions/48681916
复制相似问题