我使用的是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配置文件来做到这一点?
最佳答案
阅读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