【问题标题】:How to send a message to a remote syslog by using syslog.h如何使用 syslog.h 将消息发送到远程 syslog
【发布时间】:2013-06-13 15:52:43
【问题描述】:

以下代码将消息发送到文件 /var/log/syslog。 我有一个正在侦听端口 514(rsyslog)的远程服务器。 有什么办法可以更改此代码,使其向远程服务器发送消息?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <syslog.h>

int main(int argc, char *argv[])
{

  openlog ("Engine", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
  syslog(LOG_NOTICE,"***Example***");

}

【问题讨论】:

    标签: c++ linux syslog


    【解决方案1】:

    据我所知,使用您所描述的 openlog 和 syslog 将登录到 syslog.conf 中配置的服务器,因此您无法以您想要的方式指定服务器。您可以在 syslog.conf 中设置远程服务器,这应该可以工作。

    如果您不希望这样做,您要么需要使用支持 syslog 作为接收器的库,要么需要实现自己的库 - 这并不难。

    【讨论】:

    • 有好几个,但大多数都不仅仅包含 syslog 部分,poco 项目就是其中之一,您可以使用 boost 库和 boost::asio::ip::udp 快速编写自己的::socket,其他更多的日志库是 log4cpp,pantheios,我也认为 google-glog 支持 syslog。
    猜你喜欢
    • 2021-12-20
    • 2019-01-21
    • 2016-01-12
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    相关资源
    最近更新 更多