将logrotate与logback一起使用

Nin*_*ker 8 logging logrotate logback

将logback与logrotate结合使用时,建议的配置是什么?基于调查博客等,隐式推荐配置是使用FileAppender.append=true然后logrotate的copytruncate选项.

它是否正确?我需要注意龙吗?

DXM*_*DXM 2

我不确定正确的方法是什么,因为今天早些时候我遇到这个问题只是因为我正在寻找相同的答案。

我认为这种方法可行,但是它有两个相对较小的问题(如果你甚至可以这样称呼它们):

  • 有一个竞争条件窗口,在 logrotate 复制数据和截断数据之间,日志数据可能会丢失
  • Logrotate 必须复制整个文件,与关闭/重新打开日志文件的 SIGHUP 典型方法相比,这似乎有点浪费。

在我自己的搜索中,我现在正在考虑从 FileAppender(或 Rolling one)切换到 SysLogAppender 并将 logrotate 与 rsyslog 结合使用,这两者可以非常自然地协同工作。话又说回来,我考虑这个的原因是因为我们的系统中有其他 python 守护进程,并且这些守护进程已经使用 rsyslog。我对切换到 SysLogAppender 的唯一保留是我不知道它如何处理异常堆栈跟踪,因为 syslog 不允许消息长度超过 1024 个字符。

在回答马丁·施罗德的评论时,我想我想因为你的原因而做出改变。因此,我们所有服务的日志记录配置都以相同的方式进行配置和处理,并且具有相同的行为。