Rsyslogd и символы # 012 и # 015

Я использую rsyslogd версии 5.8. Символы \n и\r сбрасываются как # 012 и # 015 в файл журнала.

Пример (при вводе команды: printf "example-test [\ r]" | logger):

<13> 2014-07-07T11:01:03.254 root:  example-test[#015]

Я хотел бы сбросить их в шестнадцатеричном формате: # 0A и # 0D (или другой более удобный для чтения формат).

Как я могу это сделать, изменив файл конфигурации rsyslogd?

Ответ 1

После прочтения исходного кода версий 5.8.3 и 7.6.0 rsyslogd выясняется, что:

  • шестнадцатеричное основание не может быть использовано, поскольку восьмеричное основание (# 012, # 015) жестко запрограммировано.
  • экранирование может быть включено или выключено: параметры $ EscapeControlCharactersOnReceive и $ Escape8BitCharactersOnReceive

Документация подтверждает, что:

https://www.rsyslog.com/doc/v7-stable/configuration/input_directives/rsconf1_escapecontrolcharactersonreceive.html

https://www.rsyslog.com/doc/v7-stable/configuration/input_directives/rsconf1_escape8bitcharsonreceive.html