在實際的使用過程中,我們可以通過配置檔案和檢視相應的日誌檔案來使用syslog。然而,在許多應用場景下,我們往往需要通過程式產生輸出資訊並進行記錄,也就是說要把一些資訊寫成日誌檔案,正常情況下執行程式的人不用關心日誌裡的內容,只有在出現問題的時候才會檢視日誌檔案裡的內容以確定問題所在。因此,下面將詳細介紹如何通過syslog日誌系統提供的api呼叫介面,來使用程式實現對syslog的使用。主要涉及3個函式,分別是 openlog、 syslog、closelog 函式。關於syslog守護程序參考
void openlog(const char *ident, int option, int facility);
函式說明:開啟日誌裝置,以供讀取和寫入,與檔案系統呼叫的open類似;呼叫openlog是可選擇的。如果不呼叫openlog,則在第一次呼叫syslog時,自動呼叫openlog。
引數說明:
ident:是乙個標記,ident 所表示的字串將固定的加在每行日誌的前面一標識這個日誌,通常就寫成當前程式的名稱以作標記。
option:
指定openlog函式和接下來呼叫的syslog函式的控制標誌。可以取以下值:
log_cons 如果將資訊傳送給 syslogd 守護程序時發生錯誤,直接將相關資訊輸出到終端
log_ndelay 立即開啟與系統日誌的連線(通常情況下,只有在產生第一條日誌資訊的情況下才會開啟與日誌系統的連線)
log_odelay 類似於 log_ndelay 引數,與系統日誌的連線只有在 syslog 函式呼叫時才會建立
log_perror 在將資訊寫入日誌的同時,將資訊傳送到標準錯誤輸出
log_pid 每條日誌資訊中都包含程序號
facility :指定記錄訊息程式的型別,與 syslogd 守護程序的配置檔案 syslog.conf 中的 facility 對應。可取如下值:
log_auth 認證系統(login、su、getty等)
log_authpriv 同 log_auth 但只登陸到所選擇的單個使用者可讀的檔案中。
log_cron cron 守護程序
log_daemon 其他系統守護程序,如 routed
log_ftp 檔案傳輸協議:ftpd、tftpd
log_kern 核心產生的訊息
log_lpr 系統印表機緩衝池:lpr、lpd
log_mail 電子郵件系統
log_news 網路新聞系統
log_syslog 由 syslogd(8)產生的內部訊息
log_user 隨機使用者程序產生的訊息
log_uucp uucp 子系統
log_local0 ~ log_local7 本地使用保留
void syslog(int priority, const char *format, ...);
函式說明:寫入日誌,與檔案系統呼叫 write 類似。
priority:表示訊息的級別,與 syslogd 守護程序的配置檔案 syslog.conf 中的 level 對應。可取如下值:
log_emerg 緊急情況
log_alert 應該被立即改正的問題,如系統資料庫破壞
log_crit 重要情況,如硬碟錯誤
log_err 錯誤
log_warning 警告資訊
log_notice 不是錯誤情況,但是可能需要處理
log_info 情報錯誤
log_debug 包含情報的資訊,通常指在除錯乙個程式時使用
void closelog();
函式說明:關閉日誌裝置,與檔案系統呼叫的close類似;呼叫closelog也是可選擇的,它只是關閉被用於與syslog守護程序通訊的描述符。
應用示例:
#include int main(int argc, char **argv)
執行結果
Linux syslog命令使用教程詳解
syslog是linux系統預設的日誌守護程序。預設的syslog配置檔案是 etc syslog.conf檔案。程式,守護程序和核心提供了訪問系統的日誌資訊。因此,任何希望生成日誌資訊的程式都可以向 syslog 介面呼叫生成該資訊。幾乎所有的網路裝置都可以通過syslog協議,將日誌資訊以使用者...
Postman介面測試 呼叫介面
通過介面文件 fiddler,charles,f12等抓包獲取介面資訊 1 請求方式 get post 2 引數方式 有哪些引數 引數型別 必填項 3 是否帶請求頭 帶cookie headers 1 建立集合 圖1 建立集合 2 新增請求 圖2 在集合下新增請求 3 認識postman的傳參型別 ...
php xml介面呼叫
呼叫xml介面步驟 第一步 拿到乙個xml介面url位址 第二步 採集得到url裡的內容 第三步 將採集到的內容轉化為熟練操作的陣列 第四步 迴圈遍歷陣列 輸出 呼叫xml介面時 1.file get content xml load string 運用以上兩個方法 返回得到的是乙個物件型別,也可以...