syslogd过滤不工作在FreeBSD上

我无法通过FreeBSD syslogd中的程序或工具进行过滤。

我补充说

local6.debug /var/log/test.log !testd *.debug /var/log/test.log 

到我的/etc/syslog.conf并重新启动syslog守护进程。

然后,我写了一个Go程序testd ,向syslogd(facility“user”)发送一个“debug”消息,然后使用logger -p local6.debug "msg"发送一个额外的消息。 第一条消息仅logging到/var/log/messages (根据默认规则),但不logging到/var/log/test.log ,第二条消息根本没有logging。

规则似乎被忽略了?

看来你的日志消息被发送到/var/log/debug.log,因为这一行:*。= debug /var/log/debug.log

你可以:

  • 为您的testing使用另一个优先级(例如注意,而不是debugging)
  • 更改顺序,使您的行在引用debug.log的行之前