2011-10-18 86 views
1

为了开发交叉平台系统日志客户端,我试图在不使用系统日志系统调用的情况下执行它。我正在用C++开发这个客户端,现在正在测试Linux。我正在更换的旧系统日志客户端与syslog系统调用一起工作良好。 对于如何,它根本不起作用。跟踪不在/var/log/user.log之内,或者其他任何地方(grep版)。但是,当我在netcat的正确端口上收听时,我确实收到了。不应该按照方式使用端口514Linux - 系统日志客户端

跟踪是因为它应该在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听任何想法,我会非常thanksful因为我真的不明白为什么。

再次感谢您。

回答

1

syslog()调用写入/ dev/log,系统日志程序读取此unix域套接字来获取消息。 UDP/514用于网络传输。 所以目前还不清楚你想要什么。

+0

谢谢你的回答。你是对的。那么,我想我只是错误配置我的系统日志服务器与远程客户端一起工作。我需要让它在UDP/514上侦听,因为它显然不是它的默认行为。 – Rippalka