linux syslogger如何工作?

时间:2010-11-24 20:14:48

标签: linux syslog

我正在学习linux编程,并希望执行以下操作。我想创建一个像syslog一样工作的迷你记录器。我希望能够替换系统日志(不是在实践中,而只是为了在各个层面理解工作原理)。

所以在我的代码中,我会写

#include "miniLogger.h"

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

----
----

现在,我猜我需要某种守护进程来监听来自我的miniLogger的传入消息,而且我没有使用守护进程的经验。您能否指出我正确的方向,或者让我快速了解消息如何从我的API转移到可配置的目的地。 我阅读了手册页,但我需要更多地概述API如何与守护进程通信。

2 个答案:

答案 0 :(得分:9)

syslogd通过/ dev / log侦听日志消息,这是一个unix域套接字。套接字是面向数据报的,这意味着协议类似于udp。

您的日志后台程序应该打开套接字,将套接字设置为服务器模式,以写入模式打开日志文件,要求获取数据包通知,安全地解析消息,并将其写入文件。 man 7 socket中描述了重要的系统调用socket io。要获得套接字上传入数据的通知,您可以使用epoll或选择。

答案 1 :(得分:1)

syslog通常在/ dev / log使用PF_LOCAL套接字。