Есть ли способ глобально переписывать части сообщения вместо того, чтобы вставлять rewrite во все пути журнала?

Мне нужно исключить \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); };
0
19.10.2016, 12:53
1 ответ

Попробуйте добавить параметр flags (no-multi-line) к определению источника, например:

source s_src {
   system(flags(no-multi-line));
   internal();

};

Если это не сработает, то вы можете встроить перезапись в определение источника, используя канал . В руководстве администратора syslog-ng есть аналогичный пример, вам нужно только заменить синтаксический анализатор перезаписью.

HTH.

1
28.01.2020, 02:47

Теги

Похожие вопросы