Unix syslog 庫例程?


此模塊提供一個(gè)接口到Unix syslog 日常庫. 參考 Unix 手冊頁關(guān)于 syslog 設(shè)施的詳細(xì)描述.

此模塊包裝了系統(tǒng)的 syslog 例程族。 一個(gè)能與 syslog 服務(wù)器對話的純 Python 庫則以 logging.handlers 模塊中 SysLogHandler 類的形式提供。

這個(gè)模塊定義了以下函數(shù):

syslog.syslog(message)?
syslog.syslog(priority, message)

將字符串 message 發(fā)送到系統(tǒng)日志記錄器。 如有必要會添加末尾換行符。 每條消息都帶有一個(gè)由 facilitylevel 組成的優(yōu)先級標(biāo)價(jià)簽。 可選的 priority 參數(shù)默認(rèn)值為 LOG_INFO,它確定消息的優(yōu)先級。 如果未在 priority 中使用邏輯或 (LOG_INFO | LOG_USER) 對 facility 進(jìn)行編碼,則會使用在 openlog() 調(diào)用中所給定的值。

如果 openlog() 未在對 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)可以通過調(diào)用 openlog() 來設(shè)置。 如果日志當(dāng)前未打開則 syslog() 將不帶參數(shù)地調(diào)用 openlog()。

可選的 ident 關(guān)鍵字參數(shù)是在每條消息前添加的字符串,默認(rèn)為 sys.argv[0] 去除打頭的路徑部分。 可選的 logoption 關(guān)鍵字參數(shù)(默認(rèn)為 0)是一個(gè)位字段 -- 請參見下文了解可能的組合值。 可選的 facility 關(guān)鍵字參數(shù) (默認(rèn)為 LOG_USER) 為沒有顯式編碼 facility 的消息設(shè)置默認(rèn)的 facility。

引發(fā) 審計(jì)事件 syslog.openlog 使用參數(shù) ident, logoption, facility.

在 3.2 版更改: 在之前的版本中,不允許關(guān)鍵字參數(shù),并且要求必須有 ident。 ident 的默認(rèn)值依賴于系統(tǒng)庫,它往往為 python 而不是 Python 程序文件的實(shí)際名稱。

syslog.closelog()?

重置日志模塊值并且調(diào)用系統(tǒng)庫 closelog().

這使得此模塊在初始導(dǎo)入時(shí)行為固定。 例如,openlog() 將在首次調(diào)用 syslog() 時(shí)被調(diào)用(如果 openlog() 還未被調(diào)用過),并且 ident 和其他 openlog() 形參會被重置為默認(rèn)值。

引發(fā)一個(gè) 審計(jì)事件 syslog.closelog 不附帶任何參數(shù)。

syslog.setlogmask(maskpri)?

將優(yōu)先級掩碼設(shè)為 maskpri 并返回之前的掩碼值。 調(diào)用 syslog() 并附帶未在 maskpri 中設(shè)置的優(yōu)先級將會被忽略。 默認(rèn)設(shè)置為記錄所有優(yōu)先級。 函數(shù) LOG_MASK(pri) 可計(jì)算單個(gè)優(yōu)先級 pri 的掩碼。 函數(shù) LOG_UPTO(pri) 可計(jì)算包括 pri 在內(nèi)的所有優(yōu)先級的掩碼。

引發(fā)一個(gè) 審計(jì)事件 syslog.setlogmask 附帶參數(shù) maskpri。

此模塊定義了一下常量:

優(yōu)先級級別 (高到低):

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_LOCAL0 to LOG_LOCAL7,如果 <syslog.h> 中有定義則還有 LOG_AUTHPRIV。

日志選項(xiàng):

LOG_PID, LOG_CONS, LOG_NDELAY,如果 <syslog.h> 中有定義則還有 LOG_ODELAY, LOG_NOWAIT 以及 LOG_PERROR。

例子?

簡單示例?

一個(gè)簡單的示例集:

import syslog

syslog.syslog('Processing started')
if error:
    syslog.syslog(syslog.LOG_ERR, 'Processing started')

一個(gè)設(shè)置多種日志選項(xiàng)的示例,其中有在日志消息中包含進(jìn)程 ID,以及將消息寫入用于郵件日志記錄的目標(biāo)設(shè)施等:

syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('E-mail processing initiated...')