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

这样对吗?这里有我需要注意的巨龙吗?

最佳答案

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

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

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

  • 在我自己的搜索中,我现在正在考虑从FileAppender(或滚动式)切换到SysLogAppender,并将logrotate与rsyslog一起使用,这两者可以很自然地一起工作。再说一次,我考虑这个的原因是因为我们的系统中还有其他python守护程序,这些守护程序已经在使用rsyslog。我切换到SysLogAppender的唯一保留是,我不知道它如何处理异常堆栈跟踪,因为syslog不允许消息的长度超过1024个字符。

    在回答马丁·施罗德(Martin Schroder)的评论时,我想我想根据您的原故进行切换。这样,我们所有服务中的日志记录配置都将以相同的方式进行配置和处理,并具有相同的行为。

    关于logging - 使用logrotate和logback,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19105608/

    10-11 20:19