系统日志写入一般而不是特定的文件

我正在运行Ubuntu和Postgresql 9。

我已经启用postgresqllogin到系统日志,并添加以下指令到configuration文件:

syslog_facility = 'local0'". 

我已经尝试configuration系统日志logging到一个单独的文件,但提交。 我更新了/etc/syslog.conf,使其包含(请参阅postgresql-directive的最后一行)

 auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice *.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages *.emerg * daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole local0.* -/var/log/pgsql 

我用“/etc/init.d/sysklogd restart”和“restart rsyslog”重新启动了系统日志。

当postgresql重新加载,消息被追加到/ var / log / messages和/ var / log / syslog …而不是正确的文件,因为我configurationsyslog使用…

同样的版本的Postgresql的其他Debian机器上工作正常…

有任何想法吗?

  • 我的系统日志configuration文件有问题吗?
  • 我应该添加其他东西到我的postgresql.conf?
  • 我可以检查系统日志是否确实使用了我更改的configuration文件?

它看起来像你在你的postgresql.conf文件中有一个错字。 确保你正在使用

 syslog_facility = 'local0' 

另外,旧的syslogd要求在你的configuration文件中使用硬标签而不是空格,所以要确保你没有实际使用空格,或者你的编辑器没有把标签转换成空格(比如vim中的expandtab选项) 。

你也提到了旧的syslogd rsyslog,所以请检查你正在使用哪一个。 Rsyslog的configuration文件被devise为向后兼容syslogd,但使用不同的文件。 所以如果你使用的是rsylog,那么把你的日志logging添加到/etc/rsyslog.conf

为了防止这些消息也显示在/var/log/messages您需要明确地过滤掉该设备。 为了做到这一点,修改你的消息configuration为:

 *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none;\ local0.none -/var/log/messages 

这意味着:“不要将任何严重级别从local0设备写入此文件”。 或者,实际上排除local0.*