5

私はLinuxプログラミングを学んでおり、次のことをしたいと思っています。syslog のように機能するミニロガーを作成したいと思います。私はsyslogを置き換えたいと思っています(実際にはそうではありませんが、物事がどのように機能するかをあらゆるレベルで理解するためです)。

したがって、私のコードでは、次のように記述します

#include "miniLogger.h"

....
....
miniLogger(DEBUG, "sample debug message");

----
----

さて、miniLogger からの受信メッセージをリッスンするためにある種のデーモンが必要になると思いますが、デーモンの経験はありません。正しい方向を教えてください。または、API から構成可能な宛先にメッセージを移動する方法の概要を教えてください。man ページを読みましたが、API が一般的にどのようにデーモンと通信するかについての概要がもっと必要です。

4

2 に答える 2

10

syslogdは、UNIX ドメイン ソケットである /dev/log を介してログ メッセージをリッスンします。ソケットはデータグラム指向です。つまり、プロトコルは udp に似ています。

ログ デーモンは、ソケットを開き、ソケットをサーバー モードに設定し、書き込みモードでログ ファイルを開き、パケットの通知を受け取り、メッセージを安全に解析し、ファイルに書き込む必要があります。socket io を実行するための重要なシステム コールは、man 7 socketで説明されています。ソケットの着信データの通知を受け取るには、epollまたは select を使用できます。

于 2010-11-24T20:37:54.373 に答える
1

syslog は通常、/dev/log で PF_LOCAL ソケットを使用します。

于 2010-11-24T20:37:26.060 に答える