2011-10-18 10 views
1

クロスプレートフォームsyslogクライアントを開発するために、私はsyslogシステムコールを使用せずにこれを実行しようとしています。私はこのクライアントをC++で開発しており、現在はLinuxでテストしています。私が置き換えている古いsyslogクライアントは、syslogシステムコールで完璧に動作していました。 どのように、それは単に動作しません。トレースは/var/log/user.logにありません。それ以外の場所では(grep)です。しかし、私はnetcatと正しいポートで聞いてそれを受け取ります。途中でポート514を使用してはいけませんか?Linux - Syslogクライアント

トレースは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(私のsyslogサーバ)はUDP/514を正しく聞いていない。

$ModLoad imudp 
$UDPServerAddress 0.0.0.0 
$UDPServerRun 514 

ある/etc/rsyslog.conf

誰かがそれはまだUDP/514上でリッスンしない理由の任意のアイデアを持っている場合、私は本当に、なぜ表示されていない、本当にthanksful原因であると思います。

もう一度ありがとうございます。

答えて

1

syslog()呼び出しは/ dev/logに書き込み、システムロガーはこのunixドメインソケットを読み取ってメッセージを取得します。 UDP/514はネットワーク伝送用です。 あなたが望むものが明確でない。

+0

ありがとうございます。あなたが正しいです。さて、リモートクライアントで動作するようにsyslogサーバを誤って設定したと思う。 UDP/514で聞くようにする必要があります。なぜなら、明らかにデフォルトの動作ではないからです。 – Rippalka

関連する問題