将logback与logrotate结合使用时,推荐的配置是什么?基于调查博客等,隐式推荐配置是使用FileAppender.append=true
然后logrotate的copytruncate
选项。
这是对的吗?我需要注意龙吗?
答案 0 :(得分:3)
多年来为多个客户完成此操作后,最受青睐的方法是使用TimeBasedRollingPolicy,每日滚动(可设置为任意频率)并将MaxHistory设置为所需的天数(通常为30天)。
虽然我喜欢并将logrotate用于其他日志文件,但Logback的内置滚动意味着我的客户无需使用logrotate。
为了协调跨应用程序/集中化,Logback可以包含其他Logback配置文件,因此您可以在文件中定义标准的appender代码段(Logback支持属性,因此包含文件可以根据需要定义信息)。
即使有上述内容,也可能需要logrotate具有Logback不会...但我想分享TimeBasedRollingPolicy以防它被忽略。
此方法至少可以对Logback滚动文件进行logrotate工作,避免logrotate在活动Logback日志文件上运行时可能出现的问题。
保持日志隔离(不要将应用程序日志混合到syslog中)对于故障排除(应用程序和系统)非常有帮助 - 既不必处理其他人的噪音。
答案 1 :(得分:2)
我不确定正确的方法是什么,因为今天早些时候我遇到这个问题只是因为我在寻找相同的答案。
我认为这种方法可行,但它有两个相对较小的问题(如果你甚至可以称之为):
在我自己的搜索中,我现在正在考虑从FileAppender(或Rolling one)切换到SysLogAppender并使用带有rsyslog的logrotate,两者都可以很自然地一起工作。然后,我考虑这个的原因是因为我们的系统中有其他python守护进程,而那些守护进程已经使用了rsyslog。我唯一保留切换到SysLogAppender的原因是我不知道它如何处理异常堆栈跟踪,因为syslog不允许超过1024个字符的消息。
在回答马丁施罗德的评论时,我想我想像你一样做出改变。这样我们所有服务的日志记录配置都以相同的方式配置和处理,并具有相同的行为。