linux使用syslog作爲日誌監控進程,對其進行配置能減少很多必要的麻煩,並可有效的從系統日誌監控到系統的狀態,
/etc/syslog.conf根據如下的格式定義規則:
facility.level action
即設備.優先級 處理方案
facility.level 字段也成爲selector(選擇條件),選擇條件好處理方案之間用空格或tab分隔開
#號開頭的是註釋,空白行會自動跳過
facility 設備
設備定義了日誌消息的範圍,可以使用的key如下所示
auth: 有pam_pwdb 報告的認證活動
authpriv:包括特權信息,如用戶名在內的認證活動
cron:與cron和at有關的計劃任務信息
daemon:與inetd守護進程有關的後臺進程信息
kern:內核信息,首先通過klogd傳遞
lpr:與打印服務有關的信息
mail:與電子郵件有關的信息
mark:syslog的內部功能,用於生成時間戳
news:來自新聞服務器的信息
syslog:由syslog生成的信息
user:由用戶程序生成的信息
uucp:由uucp生成的信息
local0-local7: 與自定義程序一起使用
另外*通配符代表除mark以外的,securiy是一箇舊的key定義,等同於auth,不建議使用
level優先級
level定義了消息的緊急程度,按嚴重程序有高到低順序排列如下
emerg:該系統不可用,等同於panic
alert:需要立即被修改的條件
crit:危機情況
err:錯誤消息,等同於error
warning:預警信息,等同於warn
notice:具有重要性的普通條件
info:提供信息的消息
debug:不包含函數條件或問題的其他信息
none:沒有重要級,通常用戶排錯
另外*代表所有的級別,除了none外,panic,error,warn均有舊的標識符,不建議使用,在定義level級別的時候,需要注意兩點:
優先級是由應用程序在編程的時候決定的,除非修改源碼在編輯,否則不能改變消息的優先級
低優先級包含高優先級,例如,爲某個應用程序定義info的日誌導向,則涵蓋notice,warning,err,crit,alert,emerg等消息
通過小數點符號.,把設備和level連接在一起則成爲selector條件,可以使用分號;同時定義多個選擇條件,也支持如下的3個修飾符
*:表示所有的日誌信息
=:僅包含本優先級的日誌信息
!:不等於,本優先級日誌信息除外
action(處理方案)
由前面選擇條件定義的日誌信息,可執行下面的動作
file:指定日誌文件的絕對路徑
terminal或print 發送到串行或並行設備的標誌符,例如,/dev/ttyS2@host表示遠程的日誌服務器
username:發送信息到本機的指定用戶信息窗口中,但該用戶必須已經登陸到系統中
named pipe:發送到預先使用mkfifo命令創建的fifo文件的絕對路徑中