我的守护程序使用libc syslog()
调用来记录RSYSLOG_TraditionalFileFormat
格式的邮件。并且,在同一主机上运行的rsyslogd守护程序需要以RSYSLOG_SyslogProtocol23Format
格式将所有这些消息转发到远程日志收集器。
现在我想"捎带" %STRUCTURED-DATA%
到RSYSLOG_TraditionalFileFormat
格式(基本上当我的守护程序调用{{1}}时,它将在方括号中指定结构化数据)。 如何在rsyslog.conf中指定传入的日志消息格式(或模板),以便理解结构化数据?
我理解其中一个解决方案是让我的守护进程直接向syslog()
发送消息并更改/dev/log
中的默认日志消息格式。但是,这似乎不对,因为我希望保持本地日志格式不变。
答案 0 :(得分:1)
似乎无法以优雅的方式解决这个问题,因为libc syslog()
调用使用/dev/log
UNIX域套接字。
rsyslog 8.8及更早版本使用硬编码的消息解析器来处理通过UNIX域套接字接收的消息。请参阅usespecialparser设置(http://www.rsyslog.com/doc/v8-stable/configuration/modules/imuxsock.html)
使用rsyslog 7.4附带的最新Ubuntu 15.04的另一个选择是使用UDP套接字,但我不能再使用libc syslog()
了。