【问题标题】:Does rsyslog support circular log file?rsyslog 是否支持循环日志文件?
【发布时间】:2019-11-25 06:08:45
【问题描述】:

我想限制日志文件的大小,如果超过了大小,旧消息将被静默丢弃,就像一个环形缓冲区。

我认为output channel 不符合我的要求。

那么,我该怎么办?

有关更多信息,我为 syslogd 找到了 clog patch。

【问题讨论】:

    标签: syslog rsyslog


    【解决方案1】:

    使用rotate 0 只保留一个文件

    "/var/log/sample.log" {
      minsize 9M
      rotate 0
    }
    

    人轮换

       rotate count
              Log files are rotated count times before being removed or
              mailed to the address specified in a mail directive.  If count
              is 0, old versions are removed rather than rotated.  If count
              is -1, old logs are not removed at all (use with caution, may
              waste performance and disk space). Default is 0.
    

    【讨论】:

    • 我认为“copytruncate”会截断原始文件的所有内容。这不是我想要的。
    • 是的......但它不会影响这里,因为我们没有复制任何文件......@lxyscls
    • 嗯。假设限制是 10MB,并且有 1MB 新消息,我只想将旧的 9MB 消息和新的 1MB 按顺序保留在日志文件中。所以我不知道为什么rsyslog不支持这种格式,我认为是常见的。
    【解决方案2】:

    我的回答只针对 rsyslog。

    循环日志的制作方法有很多种,见this。

    例如。

    local7.* /var/log/messages

    然后使用 omprog 将这些方式合并到 rsyslog 中。

    local7.* action(type="omprog" binary="/path/ways")

    我们可以使用上述多种方式将日志记录到循环缓冲区中。

    再说一句,因为循环格式是自定义的,需要相应的工具来加载内容。我想这就是为什么 rsyslog 不支持这种正式的插件。

    【讨论】:

      猜你喜欢
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 2022-12-15
      • 2012-04-12
      • 2013-09-30
      相关资源
      最近更新 更多