Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 向远程计算机发送系统日志消息的简单快捷的方法?_C_Sockets_Syslog - Fatal编程技术网

C 向远程计算机发送系统日志消息的简单快捷的方法?

C 向远程计算机发送系统日志消息的简单快捷的方法?,c,sockets,syslog,C,Sockets,Syslog,我有一个C程序,在调用openlog指定程序名后,它当前正在通过syslog记录事件 我的程序将事件记录到syslog的主要内容只有三行: openlog(program_name, 0, facility); syslog(log_level|facility,"%s\n",message); closelog() 但是,在我的程序中,有些情况下我应该将syslog事件发送到远程机器,而不是像syslog函数通常那样在本地进行日志记录。我想做的是选择性地向包含上述行的函数提供一些其他信息,例

我有一个C程序,在调用openlog指定程序名后,它当前正在通过syslog记录事件

我的程序将事件记录到syslog的主要内容只有三行:

openlog(program_name, 0, facility);
syslog(log_level|facility,"%s\n",message);
closelog()
但是,在我的程序中,有些情况下我应该将syslog事件发送到远程机器,而不是像syslog函数通常那样在本地进行日志记录。我想做的是选择性地向包含上述行的函数提供一些其他信息,例如主机(以及可选的端口),以及是否使用udp或tcp,如果存在此类信息,则通过rsyslog协议将syslog事件发送到另一台机器

我绝对不想做的是更改syslog守护进程的任何配置文件。我只是希望,在程序控制下,能够将相同的消息发送到另一台机器的系统日志,否则将使用上述三行在本地显示

我能够确认我能够在程序控制下做到这一点的唯一方法是手动构造符合RFC 5424的消息,并通过套接字连接手动发送它。我是否需要自己编写代码来完成所有这些工作,或者是否有一些现有的工具(开源)可以满足我的需要

您可能会发现这很有用:。它是
logger
的源代码,您可能会发现它很有用:。它是
logger