2011-11-26 226 views
1

我們有大約10個不同的守護進程,我們希望使用syslog日誌記錄。它看起來像你應該使用的自定義應用程序LOCAL0 .. LOCAL7設施。那麼,如果只有8個可能的「套接字」,那麼如何區分這10個守護進程呢?syslog和LOCAL0..7

例如,如果我們希望每個守護程序都有一個/var/log/daemon<x>文件。

回答

2

不要爲此使用不同的syslog設施。相反,通過LOG_PID選項openlog並適當配置您的記錄器守護進程通過syslog.conf,或可能使用rsyslog或其他一些syslogger(其中有很多)。 openlog有一個ident參數,記錄器dameons可以使用它作爲歧視&過濾日誌消息。

和替代將是傳統決定記錄應該去一些特定應用文件/var/log下(即只<stdio.h>使用帶有fopenfprintf但不要忘記fflush)。這是許多Linux服務器(exim4lighttpd,Xorg,...)正在做的事情。另請參閱定義約定的Linux Standard Base

+0

傳遞'LOG_PID'很簡單,但是將'PID'作爲一個動態賦值,怎麼寫一些規則來將日誌分成10個不同的文件呢? – Cartesius00

+0

您正在將標識傳遞給openlog。我編輯了我的答案來解釋更多。只需配置您的記錄器,以獲取該身份的各種值。 –

+0

謝謝,所以可以有一些靜態/固定的'syslog.conf'規則,這取決於傳遞給'openlog'的'ident',並說「如果'ident'有點'將日誌傳遞給那個文件」,對吧? – Cartesius00