将某些进程的系统日志输出redirect到特定文件

我必须承认是一个完整的系统日志新手。 直到现在我还没有触及它,但我每天都会使用它的输出,就像我们大多数人一样:)

我目前有一个gmetad守护进程垃圾邮件我的/ var / log / messages文件与如下消息的问题:

9月1日10:09:49 monitor / usr / sbin / gmetad [31752]:RRD_update(/ var / lib / ganglia / rrds / Machines / SummaryInfo /example.rrd):非法尝试使用时间更新1314868188上次更新时间是1314868188(最less一秒钟)。

我不太担心错误,我想要做的就是将这些特定的消息redirect到另一个日志文件(例如/var/log/gmetad.log)。 问题是,似乎没有任何方法可以将gmetad的日志传送到其configuration中的某个位置(并且这个特定软件的文档看起来相当稀疏)。 所以我想知道是否可以使用syslog中的“本地”工具来获取这些消息,并将它们粘在别的地方,让/ var / log / messages更清洁一点。

谁能帮忙? 有没有人有“本地”设施的例子?

你有哪个syslog守护程序? Syslogd? syslog-ng? rsyslog? 每个守护进程的语法都不相同。

例如在rsyslog中,你可以做类似的事情

local5.* /var/log/gmetad.log 

{你必须find应用程序的设施}

否则你可以做类似的事情

 if $msg contains gmetad then /var/log/gmetad.log