如何仅记录 syslog-ng 中的消息?

如何仅记录 syslog-ng 中的消息?

syslog-ng.conf有以下内容:

source s_imp { tcp(ip("localhost") port(514)); };

filter f_imp {program("imp");};

destination d_imp {file("/home/rpr/syslog.log");};

log {source(s_imp); filter(f_imp); destination(d_imp);};

我得到的输出syslog.log是:

Apr  8 05:11:20 127.0.0.1 imp[4463]: message

我只想记录消息,而不是时间戳、IP 地址等。有办法吗?

答案1

这可以借助模板来完成。$MSG有消息内容,我们可以确保只记录它。

template t_imp {
  template("$MSG\n");
  template_escape(no);
};

destination d_imp {
  file("/home/rpr/syslog.log" template(t_imp));
};

答案2

如果你不想启用template-escape(),也可以使用内联模板来完成:

destination d_file {
    file ("/var/log/messages" template("${MESSAGE}\n") );
};

相关内容