3

我们已经在负载平衡的服务器上使用 syslog-ng 实现了集中式日志记录。可以在此处查看该设置的历史:如何设置 PHP 日志记录以访问远程服务器?.
它工作正常,但换行符在目的地被剥离。有没有办法保持换行符完好无损?这是我们的配置:

资源

destination php { tcp("server.com" port(xxxx)); };  
log { source(s_all); filter(f_php); destination(php); };  
filter f_php { facility(user); };  

目的地

destination d_php { file("$PROGRAM" owner(www-data) group(www-data) perm(0644)); };  
filter f_php { program("^\/var\/log\/"); };  
log { source(s_all); filter(f_php); destination(d_php); flags(final); };  
4

1 回答 1

0

您可以更改目标的 syslog 模板格式并在末尾手动添加换行符。例如,这是我用于自定义 syslog-ng 流之一的模板。我更改了日期格式(更容易被脚本解析)。注意末尾的“\n”。

file("$PROGRAM"
        template("$R_ISODATE $HOST_FROM $MSGHDR$MSG\n")
        template_escape(no)
);

有关您可以使用的各种信息,请参阅syslog-ng 文档。$VARS

于 2012-12-20T14:02:36.167 回答