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