Мне нужно исключить \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); };
Попробуйте добавить параметр flags (no-multi-line) к определению источника, например:
source s_src {
system(flags(no-multi-line));
internal();
};
Если это не сработает, то вы можете встроить перезапись в определение источника, используя канал . В руководстве администратора syslog-ng есть аналогичный пример, вам нужно только заменить синтаксический анализатор перезаписью.
HTH.