在 C 语言中生成 IETF-syslog 消息的标准方式是什么?
有标题 <syslog.h>。但它没有提供使用 STRUCTURED-DATA 机制 ( rfc-5424 ) 的选项。
当然,消息可以直接手动构造到套接字。但似乎这样的方式并不标准。
还有其他标准方法吗?
执行此操作的标准方法是让您的应用程序使用正常的日志消息openlog()
,syslog()
并closelog()
从<syslog.h>
.
这会将消息发送到syslogd
本地计算机上的运行。如果要使用 syslog 协议通过网络转发消息,则syslogd
它自己会处理这个问题。例如,这可以使用文件@hostname
中的目标来完成syslogd.conf
。
简而言之,您的应用程序应该将消息记录到syslogd
,并syslogd
决定将它们发送到哪里(包括通过网络)。这允许本地管理员最大程度地控制。
嗯... rfc不到 2 年。我不认为看到通常的嫌疑人尚未实施它是一个很大的惊喜。