Unix syslog 庫例程?
此模塊提供一個(gè)接口到Unix syslog
日常庫. 參考 Unix 手冊頁(yè)關(guān)于 syslog
設施的詳細描述.
此模塊包裝了系統的 syslog
例程族。 一個(gè)能與 syslog 服務(wù)器對話(huà)的純 Python 庫則以 logging.handlers
模塊中 SysLogHandler
類(lèi)的形式提供。
這個(gè)模塊定義了以下函數:
- syslog.syslog(message)?
- syslog.syslog(priority, message)
將字符串 message 發(fā)送到系統日志記錄器。 如有必要會(huì )添加末尾換行符。 每條消息都帶有一個(gè)由 facility 和 level 組成的優(yōu)先級標價(jià)簽。 可選的 priority 參數默認值為
LOG_INFO
,它確定消息的優(yōu)先級。 如果未在 priority 中使用邏輯或 (LOG_INFO | LOG_USER
) 對 facility 進(jìn)行編碼,則會(huì )使用在openlog()
調用中所給定的值。如果
openlog()
未在對syslog()
的調用之前被調用,則將不帶參數地調用openlog()
。引發(fā) 審計事件
syslog.syslog
使用參數priority
,message
.
- syslog.openlog([ident[, logoption[, facility]]])?
后續
syslog()
調用的日志選項可以通過(guò)調用openlog()
來(lái)設置。 如果日志當前未打開(kāi)則syslog()
將不帶參數地調用openlog()
。可選的 ident 關(guān)鍵字參數是在每條消息前添加的字符串,默認為
sys.argv[0]
去除打頭的路徑部分。 可選的 logoption 關(guān)鍵字參數(默認為 0)是一個(gè)位字段 -- 請參見(jiàn)下文了解可能的組合值。 可選的 facility 關(guān)鍵字參數 (默認為LOG_USER
) 為沒(méi)有顯式編碼 facility 的消息設置默認的 facility。引發(fā) 審計事件
syslog.openlog
使用參數ident
,logoption
,facility
.在 3.2 版更改: 在之前的版本中,不允許關(guān)鍵字參數,并且要求必須有 ident。 ident 的默認值依賴(lài)于系統庫,它往往為
python
而不是 Python 程序文件的實(shí)際名稱(chēng)。
- syslog.closelog()?
重置日志模塊值并且調用系統庫
closelog()
.這使得此模塊在初始導入時(shí)行為固定。 例如,
openlog()
將在首次調用syslog()
時(shí)被調用(如果openlog()
還未被調用過(guò)),并且 ident 和其他openlog()
形參會(huì )被重置為默認值。引發(fā)一個(gè) 審計事件
syslog.closelog
不附帶任何參數。
- syslog.setlogmask(maskpri)?
將優(yōu)先級掩碼設為 maskpri 并返回之前的掩碼值。 調用
syslog()
并附帶未在 maskpri 中設置的優(yōu)先級將會(huì )被忽略。 默認設置為記錄所有優(yōu)先級。 函數LOG_MASK(pri)
可計算單個(gè)優(yōu)先級 pri 的掩碼。 函數LOG_UPTO(pri)
可計算包括 pri 在內的所有優(yōu)先級的掩碼。引發(fā)一個(gè) 審計事件
syslog.setlogmask
附帶參數maskpri
。
此模塊定義了一下常量:
- 優(yōu)先級級別 (高到低):
LOG_EMERG
,LOG_ALERT
,LOG_CRIT
,LOG_ERR
,LOG_WARNING
,LOG_NOTICE
,LOG_INFO
,LOG_DEBUG
.- 設施:
LOG_KERN
,LOG_USER
,LOG_MAIL
,LOG_DAEMON
,LOG_AUTH
,LOG_LPR
,LOG_NEWS
,LOG_UUCP
,LOG_CRON
,LOG_SYSLOG
,LOG_LOCAL0
toLOG_LOCAL7
,如果<syslog.h>
中有定義則還有LOG_AUTHPRIV
。- 日志選項:
LOG_PID
,LOG_CONS
,LOG_NDELAY
,如果<syslog.h>
中有定義則還有LOG_ODELAY
,LOG_NOWAIT
以及LOG_PERROR
。
例子?
簡(jiǎn)單示例?
一個(gè)簡(jiǎn)單的示例集:
import syslog
syslog.syslog('Processing started')
if error:
syslog.syslog(syslog.LOG_ERR, 'Processing started')
一個(gè)設置多種日志選項的示例,其中有在日志消息中包含進(jìn)程 ID,以及將消息寫(xiě)入用于郵件日志記錄的目標設施等:
syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('E-mail processing initiated...')