syslog的守護程序用於解決守護程序的日誌記錄問題,而日誌資訊儲存的位置和記錄的資訊級別是在syslogd守護程序的配置檔案中設定的。守護程序日誌主要涉及3個函式,分別是openlog、syslog和closelog函式。
一般log資訊都是在 /var/log/messages檔案中儲存,ubuntu中是在 /var/log/syslog檔案中
void openlog(const char *ident, int option, int facility);
呼叫openlog是可選擇的。如果不呼叫openlog,則在第一次呼叫syslog時,自動呼叫openlog。
引數ident常用來表示資訊**,可以自定義設定
引數option用於指定openlog函式和接下來呼叫的syslog函式的控制標誌。
log_cons 如果將資訊傳送給syslogd守護程序時發生錯誤,直接將相關資訊輸出到終端
log_ndelay 立即開啟與系統日誌的連線(通常情況下,只有在產生第一條日誌資訊的情況下才會開啟與日誌系統的連線)
log_nowait 在記錄日誌資訊時,不等待可能的子程序的建立
log_odelay 類似於log_ndelay引數,與系統日誌的連線只有在syslog函式呼叫時才會建立
log_perror 在將資訊寫入日誌的同時,將資訊傳送到標準錯誤輸出(posix.1-2001不支援該引數)
log_pid 每條日誌資訊中都包括程序號
引數facility,這個要與syslogd守護程序的配置檔案對應,日誌資訊會寫入syslog.conf檔案指定的位置。
無void syslog(int priority, const char *format, …);
引數priority表示訊息的級別
引數format為訊息的格式,參考printf函式
無void closelog(void);
呼叫closelog是可選擇的,它只是關閉被用於與syslog守護程序通訊的描述符。
引數:無
無
int main(void)
/****************執行結果****************
getpid = 12718
注釋:一般log資訊都是在 /var/log/messages檔案中儲存
ubuntu中是在 /var/log/syslog檔案中
may 31 20:24:24 ubuntu a.out[12718]: syslog text1
may 31 20:24:24 ubuntu a.out[12718]: syslog text2
may 31 20:24:24 ubuntu a.out[12718]: syslog text3
***********************************/
68 程序之使用syslog來記錄除錯資訊
openlog為當前的應用程式開啟乙個log檔案 syslog用來記錄一條資訊 closelog用來關閉本程式的log檔案 可以使用這三個函式,為系統檔案寫一條條的日誌,用日誌來做記錄 日誌資訊就是乙個檔案,每發生一件事,就給檔案寫一條日誌資訊,之後檢視這個檔案,就知道發生了什麼事情 各種引數 vo...
C 學習記錄 程序學習
c 中使用process類對程序進行操作,要使用process類,首先需要引入命名空間using system.diagnostics 1 獲得執行的所有程序 返回結果 型別 system.diagnostics.process 的陣列,表示本地計算機上執行的所有程序資源。public static...
LeetCode學習記錄(10)
給定乙個字串 s 和乙個字元模式 實現支援 和 的正規表示式匹配。匹配任意單個字元。匹配零個或多個前面的元素。匹配應該覆蓋整個字串 s 而不是部分字串。說明 s 可能為空,且只包含從 a z 的小寫字母。p 可能為空,且只包含從 a z 的小寫字母,以及字元 和 示例 1 輸入 s aa p a 輸...