2010-11-24 23 views
5

我正在学习linux编程,希望做到以下几点。我想创建一个像syslog一样工作的迷你记录器。我希望能够替换系统日志(不是在实践中,而是为了在每个级别上理解事情的工作原理)。linux syslogger如何工作?

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

#include "miniLogger.h" 

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

---- 
---- 

现在,我猜我会需要某种守护进程来侦听来自我miniLogger传入的消息,我有后台程序没有经验。您能指出我朝着正确的方向,还是快速了解消息如何从我的API转移到可配置的目标。 我阅读手册页,但我需要更多地概述API如何与守护进程进行通信。

回答

8

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

您的日志守护进程应打开套接字,将套接字设置为服务器模式,以写入模式打开日志文件,要求获得数据包通知,安全地解析消息并将它们写入文件。在man 7 socket中描述了重要的系统要求做socket io的要求。要通知套接字上的传入数据,可以使用epoll或select。

+0

非常感谢。我现在有我的周末去做这件事。再次感谢您的清晰,相关和简洁的解释。 – Andrew 2010-11-24 21:04:38

1

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