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