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?


person user803422    schedule 07.07.2014    source источник


Ответы (1)


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

  • шестнадцатеричное основание использовать нельзя, так как восьмеричное основание (#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

person user803422    schedule 18.07.2014
comment
Битые ссылки. Я получаю эти контрольные символы, спамящие мои выходные журналы из контейнера Docker. Что я могу установить в своем Dockerfile, чтобы избежать их? - person Austin; 12.04.2019