On this page
36.15. syslog — Unix syslog 库例程
该模块提供了与 Unix syslog
库例程的接口。有关syslog
Function的详细说明,请参见 Unix 手册页。
此模块包装系统syslog
例程系列。 logging.handlers模块中的SysLogHandler
提供了可以与 syslog 服务器对话的纯 Python 库。
该模块定义了以下Function:
syslog.
syslog
(* message *)syslog.
syslog
(优先级,消息)- 将字符串* message 发送到系统 Logger。如有必要,添加尾随换行符。每个消息都被标记为具有 facility 和 level 的优先级。可选的 priority 参数(默认为
LOG_INFO
)确定邮件优先级。如果未使用逻辑或(LOG_INFO | LOG_USER
)在 priority *中对Function进行编码,则使用openlog()调用中给出的值。
- 将字符串* message 发送到系统 Logger。如有必要,添加尾随换行符。每个消息都被标记为具有 facility 和 level 的优先级。可选的 priority 参数(默认为
如果在调用syslog()之前尚未调用openlog(),则将不带任何参数地调用openlog()
。
syslog.
openlog
([* ident * [,* logoption * [,设施]]])
可选的* ident 关键字参数是一个字符串,该字符串位于每个消息之前,并且默认为sys.argv[0]
,并且前导路径部分已去除。可选的 logoption 关键字参数(默认为 0)是一个位字段–有关合并的可能值,请参见下文。可选的 facility *关键字参数(默认值为LOG_USER
)为没有显式编码的Function的邮件设置默认Function。
syslog.
closelog
( )- 重置 syslog 模块值,然后调用系统库
closelog()
。
- 重置 syslog 模块值,然后调用系统库
这导致模块的行为与最初导入时的行为相同。例如,在第一个syslog()调用中将调用openlog()(如果尚未调用openlog()),并且* ident *和其他openlog()参数被重置为默认值。
syslog.
setlogmask
(* maskpri *)- 将优先级掩码设置为* maskpri 并返回先前的掩码值。在 maskpri 中未设置优先级的syslog()调用将被忽略。默认为记录所有优先级。函数
LOG_MASK(pri)
计算单个优先级 pri 的掩码。函数LOG_UPTO(pri)
计算所有优先级的掩码,直到 pri *为止。
- 将优先级掩码设置为* maskpri 并返回先前的掩码值。在 maskpri 中未设置优先级的syslog()调用将被忽略。默认为记录所有优先级。函数
该模块定义以下常量:
优先级(从高到低):
LOG_EMERG
,LOG_ALERT
,LOG_CRIT
,LOG_ERR
,LOG_WARNING
,LOG_NOTICE
,LOG_INFO
,LOG_DEBUG
.
Facilities:
LOG_KERN
,LOG_USER
,LOG_MAIL
,LOG_DAEMON
,LOG_AUTH
,LOG_LPR
,LOG_NEWS
,LOG_UUCP
,LOG_CRON
,LOG_SYSLOG
和LOG_LOCAL0
至LOG_LOCAL7
。
Log options:
LOG_PID
,LOG_CONS
,LOG_NDELAY
,LOG_NOWAIT
和LOG_PERROR
(如果在<syslog.h>
中定义)。
36.15.1. Examples
36.15.1.1. 简单的例子
一组简单的示例:
import syslog
syslog.syslog('Processing started')
if error:
syslog.syslog(syslog.LOG_ERR, 'Processing started')
设置一些日志选项的示例,其中包括在记录的消息中包含进程 ID,并将消息写入用于邮件记录的目标工具:
syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('E-mail processing initiated...')