核心程式可以呼叫log函式記日誌. 任何使用者程序可以開啟並讀取/dev/klog裝置讀取這些訊息
大多數使用者程序,呼叫syslog函式產生日誌訊息. 這使得訊息傳送到unix域資料報套接字/dev/log
使用者程序傳送日誌訊息到udp埠514
通常syslogd守護程序會讀取乙個配置檔案(/etc/syslog.conf)來決定不同型別的訊息應該送到何處.
#include void openlog(const char* ident,int option,int facility);
void syslog(int priority,const char* format,...);
void vsyslog(int priority,const char* format,va_list arg);
void closelog();
/* 返回舊的日誌優先順序遮蔽值 */
int setlogmask(int maskpriority);
引數priority可以用來指明訊息的種類和等級
即priority的可選擇同時包含了openlog中facility引數的可選擇和level可選值
facility
說明log\_auth
認證相關的資訊,入login,su,getty產生的資訊
log\_cron
由cron或at產生的資訊
log\_daemon
系統守護程序產生的訊息
log\_ftp
ftp守護程序產生的訊息
log\_kern
核心產生的訊息
log\_local0 – log\_local7
保留本地使用
log\_lpr
行列印系統產生的訊息
log\_mail
郵件系統產生的訊息
log\_news
usenet網路新聞系統產生的訊息
log\_syslog
syslogd本身產生的訊息
log\_user
來自其他使用者程序的訊息(預設)
log\_uucp
uucp系統產生的訊息
log\_emerg
緊急狀態(系統不可用)
log\_altert
必須立即修復的狀態
log\_crit
嚴重狀態(例如硬體故障)
log\_err
出錯資訊
log\_warning
警告資訊
log\_notice
正常,但重要的訊息
log\_info
訊息性質的資訊
log\_debug
除錯資訊
closelog也是可選的,只有在呼叫openlog後才需要呼叫. 它用於關閉曾被用於與syslogd守護程序通訊的描述符
setlogmask函式用於設定程序的日誌優先順序遮蔽字.
只有在記錄的訊息優先順序高於遮蔽字中的級別才會被記錄下來.
設定遮蔽字為0,並不產生任何作用
unix環境高階程式設計之環境搭建
首先,apue.h不是系統自有的,而是做著自己的寫的,因此,本書程式設計的第一步就是將該檔案包含下來 2.執行一下 ls,發現多了乙個apue.3e,cd 命令進入該目錄 3.執行 make 第三步一般都會出錯,提示是需要 bsd,執行 apt yum install y libbsd dev,重新...
unix環境高階程式設計之程序
每個程序都有乙個非負整型表示的唯一程序id。但是程序id是可重用的。id為0的程序通常是排程程序,也叫叫喚程序,該程序是核心的一部分。程序1通常是init程序,在自舉過程結束時由核心呼叫 sbin init中 附註 oo c程式的儲存空間布局 1 正文段 2 初始化資料段 3 非初始化資料段 4 棧...
unix環境高階程式設計之訊號篇(一)
一 引言 訊號是軟體中斷,很比較重要的應用程式都需要處理訊號。訊號提供了一種處理非同步事件的方法,例如,中斷使用者鍵入中斷鍵,則會通過訊號機制停止乙個程式,或及早終止管道中的下乙個程式。二 概念 每乙個訊號都有乙個名字。這些名字都是以sig開頭,如sigabrt是夭折訊號,當程序呼叫abort函式時...