日誌主要涉及3個函式,分別是openlog、syslog和closelog函式。表8.4所示為這3個函式的具體資訊。
openlog、syslog和closelog函式
標頭檔案
函式形式
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);
返回值 成功
失敗是否設定
errno −
− −說明:openlog函式用於開啟系統日誌連線。只有在開啟連線後,才能使用syslog函式向日誌檔案中新增日誌資訊。closelog函式用於關閉開啟的系統日誌連線,該函式的呼叫在實現中是可選擇的。
openlog函式中的第1個引數為ident,該引數常用來表示資訊的**。ident指向的字元資訊會被固定地新增在每行日誌的前面。第2個參 數option用於指定openlog函式和接下來呼叫的syslog函式的控制標誌。option的取值情況如表8.5所示,可以單獨取其中的某個值, 也可以通過與運算來獲得多種特性。第3個引數為facility,這個要與syslogd守護程序的配置檔案對應,日誌資訊會寫入syslog.conf 檔案指定的位置。
openlong函式中的option取值表 參 數
說 明
log_cons
如果將資訊傳送給
syslogd
守護程序時發生錯誤,直接將相關資訊輸出到終端
log_ndelay
立即開啟與系統日誌的連線(通常情況下,只有在產生第一條日誌資訊的情況下才會開啟與日誌系統的連線)
log_nowait
在記錄日誌資訊時,不等待可能的子程序的建立
log_odelay
類似於log_ndelay
引數,與系統日誌的連線只有在
syslog
函式呼叫時才會建立
參 數 說
明 log_perror
在將資訊寫入日誌的同時,將資訊傳送到標準錯誤輸出(
posix.1-2001
不支援該引數)
log_pid
每條日誌資訊中都包括程序號
openlog函式引數facility取值
facility
引數 syslog.conf
中對應的
facility
取值 log_kern
kern
log_user
user
log_mail
log_daemon
daemon
log_auth
auth
log_syslog
syslog
log_lpr
lprlog_news
news
log_uucp
uucp
log_cron
cron
log_authpriv
authpriv
log_ftp
ftplog_local0
~log_local7
local0
~local7
syslog函式中的第乙個引數priority表示訊息的級別。與openlog函式中的facility引數類似,priority引數與level也存在對應的關係。
syslog函式引數priority取值
priority
引數 syslog.conf
中對應的
level
取值 log_emerg
emerg
log_alert
alert
log_crit
crit
log_err
errlog_warning
warning
log_notice
notice
log_info
info
log_debug
debug
syslog函式的第二個引數為訊息的格式,之後是格式對應的引數。函式的使用類似於printf函式。
#include
#include
int main(int argc,char* argv)
closelog();
return 0;
}呼叫syslog函式時,指定的priority為log_info,對應於syslog.conf中的info優先順序。而呼叫openlog函式 的facility為log_user,對應於syslog.conf中facility取user的情況。查詢syslog.conf中的 facility.level為user.info的規則,如圖8.7所示。可知,日誌檔案為/var/log/message。
由於檢視/var/log下的日誌需要root許可權,使用su切換到root使用者。使用tail命令檢視message檔案中的日誌資訊,發現相關資訊已經通過syslogd守護程序記錄在了/var/log/message日誌檔案中
jul 13 11:54:08 localhost hemm[7631]: 0, log info test...
jul 13 11:54:08 localhost hemm[7631]: 1, log info test...
jul 13 11:54:08 localhost hemm[7631]: 2, log info test...
jul 13 11:54:08 localhost hemm[7631]: 3, log info test...
jul 13 11:54:08 localhost hemm[7631]: 4, log info test...
Linux日誌檔案 var log總結
總結常用的一些位於 var log 目錄之下的日誌檔案。其中一些只有特定版本採用,如dpkg.log只能在基於debian的系統中看到。檔案描述 var log messages 包括整體系統資訊,其中也包含系統啟動期間的日誌。此外,mail,cron,daemon,sftp,kern和auth等內...
linux程式設計錯誤總結
1 error string does not name a type 新增using std string或者使用using namespace std 2 c compile error discards qualifier 可能發生const常成員函式呼叫普通非const成員函式。3 erro...
Linux 核心程式設計總結
linux 核心程式設計總結 從事了幾年的核心程式設計,對核心程式設計有一定的經驗,現總結 吐槽下,作為標記。任何程序都有有程序的入口點,使用者態的程序,其入口點是,main函式。那麼核心的入口點是什麼?個人理解整個os,執行起來就是乙個程序,核心的入口點是init程序,在這個程序中負責 1 子程序...