除Debian上的syslog外,还将MySQL事件logging到文件中

默认情况下,Debian使用rsyslog来处理MySQL错误日志logging。 我喜欢这种行为,不想改变它。 不过,我希望rsyslog将MySQL事件写入/var/log/mysqld.log ,除了已经有的函数/var/log/syslog 。 我相信这应该是可以使用rsyslog,所以我不想使用MySQL – --log-error命令选项。

在阅读了关于--syslogmy.cnf文档部分--syslog ,在我看来,使用的syslog工具将被称为mysqldmysqld_safe 。 因此,我尝试添加以下到我的rsyslog.conf

 mysqld.* -/var/log/mysqld.log mysqld_safe.* -/var/log/mysqld_safe.log 

但是,重新启动rsyslog和mysql服务后,没有任何东西会写入这些文件。 我碰到了这些文件,它们被root:adm所拥有,就像/var/log/mail.log等其他类似的文件一样,它正确地接收我的postfix和dovecot事件。

我对rsyslog没有经验,所以我不知道我在做什么错误或如何进一步调查。 由于关于将日志系统日志logging到MySQL中的丰富信息使得这一切变得更加困难,这不是我正在寻求的。 任何帮助,将不胜感激。

编辑:在进一步的调查,我看到那些不是有效的设施(这是预定义的)。 因此,我需要使用一种替代方法进行过滤,而不是通过设施。

rsyslog.conf添加到rsyslog.conf似乎产生我所寻找的结果:

 :syslogtag, isequal, "mysqld:" -/var/log/mysqld.log & ~ :syslogtag, isequal, "mysqld_safe:" -/var/log/mysqld.log & ~ :syslogtag, startswith, "/etc/mysql/debian-start" -/var/log/mysqld.log & ~