メッセージ内で\ 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。