1. syslogd守護進程用於解決守護進程的日誌記錄問題,而日誌信息保存的位置和記錄的信息級別是在syslogd守護進程的配置文件中設定的。
2. 守護進程日誌的實現主要有以下三個函數:
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format,...);
void closelog(void);
openlog:用於打開系統日誌連接,只有在打開連接後,才能使用syslog向日志文件中添加信息。
closelog:關閉打開的系統日誌文件(在實際編程中,可選)
參數簡介:
ident:指定信息來源
option:
option |
說明 |
LOG_CONS | 如果信息發送給syslogd時發生錯誤,直接將信息輸出到終端 |
LOG_NDELAY | 立即打開與系統日誌的連接(通常,在產生第一條日誌信息的情況下才會打開與日記系統的連接) |
LOG_NOWAIT | 在記錄日誌信息時,不等待可能的子進程的創建 |
LOG_ODELAY | 類似於LOG_NDELAY,日記系統在調用syslog函數時才創建 |
LOG_PERROR | 將信息寫入日誌的同時,也發送到標準錯誤輸出 |
LOG_PID | 每條日誌信息包括進程號 |
facility:
facility | 說明 |
LOG_KERN | kern |
LOG_USER | user |
LOG_MAIN | main |
LOG_DAEMON | daemon |
LOG_AUTH | auth |
LOG_SYSLOG | syslog |
LOG_LPR | lpr |
LOG_NEWS | news |
LOG_UUCP | uucp |
LOG_CRON | cron |
LOG_AUTHPRIV | authpriv |
LOG_FTP | ftp |
LOG_LOCAL0 ~ LOG_LOCAL7 | local0 ~ local7 |
priority:
Priority | syslog.conf中level的取值 |
LOG_EMERG | emerg |
LOG_ALERT | alert |
LOG_CRIT | crit |
LOG_ERR | err |
LOG_WARNING | warning |
LOG_NOTICE | notice |
LOG_INFO | info |
LOG_DEBUG | debug |
3. 參考代碼