1

为了开发一个跨平台的系统日志客户端,我试图在不使用系统日志系统调用的情况下做到这一点。我正在用 C++ 开发这个客户端,现在在Linux. 我要替换的旧系统日志客户端与系统日志系统调用完美配合。至于如何,它根本行不通。跟踪不在/var/log/user.log其他任何地方(grep编辑)。但是当我在正确的端口上用netcat. 顺便说一句,端口不514应该已经在使用吗?

跟踪是应该发送的UDP/514。我试图坚持使用 RFC 3164,但显然还是有问题。

如果有人能给我一个解决这个问题的提示,我真的很感激。

Trace: severity: 2 (Critical); facility: 23 (Local Use 7) ==> priority: 186

sh$> sudo nc -ul localhost -p 514
  <186>Oct 18 10:36:03 hostname test_trace: | 10:36:03.242995 | CRIT  | xxx-MAIN[5473-000] | 00000 | 0008 : main : user_msg

谢谢 !


我想我在自己的问题中发现了问题:Rsyslog(我的系统日志服务器)没有正确监听 UDP/514。

/etc/rsyslog.conf

$ModLoad imudp
$UDPServerAddress 0.0.0.0
$UDPServerRun 514

如果有人知道为什么它仍然不听 UDP/514,我真的很感激,因为我真的不明白为什么。

再次感谢你。

4

1 回答 1

1

syslog() 调用写入 /dev/log,系统记录器读取此 unix 域套接字以获取消息。UDP/514 用于网络传输。所以不清楚你想要什么。

于 2011-10-18T09:38:37.593 回答