程序學習10 syslog記錄除錯資訊

2021-08-01 21:32:11 字數 1462 閱讀 8666

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 輸...