我正在学习Linux编程,并希望做到以下几点。 我想创build一个像syslog一样工作的迷你logging器。 我希望能够取代系统日志(不是在实践中,而是为了在每个级别上理解事情是如何工作的)。
所以在我的代码中,我会写
#include "miniLogger.h" .... .... miniLogger(DEBUG, "sample debug message"); ---- ----
现在,我猜测我需要某种守护进程来监听来自我的miniLogger的传入消息,而且我对守护进程没有任何经验。 你能指出我的方向吗?或者让我快速了解一下消息如何从我的API移动到一个可configuration的目的地。 我阅读手册页,但是我需要更多地概述API如何与守护进程进行通信。
syslogd通过/ dev / log(这是一个unix域套接字)侦听日志消息。 套接字是面向数据报的,意味着协议类似于udp。
您的日志守护进程应打开套接字,将套接字设置为服务器模式,以写入模式打开日志文件,要求获得数据包通知,安全地解析消息,并将其写入文件。 在man 7 socket中描述了重要的系统调用socket io。 要通知套接字上的传入数据,可以使用epoll或select。
系统日志通常在/ dev / log上使用PF_LOCAL套接字。