2010-11-24 34 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套接字。