我需要从消息中转义 \n 。我可以使用“ rewrite
”来执行此操作,但问题是我有很多日志路径,并且我不想rewrite
在所有日志路径上指定“”。是否有设置重写的全局方法?
# Escape the new line characters
rewrite r_escape_new_line {subst("\n", "#012", value("MSG"), flags("global"));};
log { source(s_system); filter(f_critical); rewrite(r_escape_new_line); destination(d_critical); };
log { source(s_system); filter(f_error); rewrite(r_escape_new_line); destination(d_error); };
log { source(s_system); filter(f_warning); rewrite(r_escape_new_line); destination(d_warning); };
答案1
尝试将 flags(no-multi-line) 选项添加到源定义中,例如:
source s_src {
system(flags(no-multi-line));
internal();
};
如果这不起作用,那么您可以使用通道将重写嵌入到源定义中。这syslog-ng 管理员指南有一个类似的例子,你只需要用重写来替换解析器。
HTH。