rsyslog 是否支持循环日志文件?

Does rsyslog support circular log file?

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

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

那么,我能做什么?

有关更多信息,我找到了一个用于 syslogd 的 clog patch

使用 rotate 0 只保留一个文件

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

man rotate

   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.

我的回答只针对 rsyslog。

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

例如

local7.* /var/log/messages

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

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

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

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