UNIX環境高階程式設計之syslog

2021-07-03 01:31:59 字數 1575 閱讀 9027

核心程式可以呼叫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函式時...