syslog ---Unix系统日志库例程


此模块提供到Unix的接口 syslog 库例程。有关 syslog 设施。

此模块包裹系统 syslog 例行公事。可以与Syslog服务器对话的纯python库在 logging.handlers 模块AS SysLogHandler .

该模块定义了以下功能:

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

发送字符串 消息 到系统记录器。如有必要,将添加一个尾随换行符。每条消息都标记有一个优先级,该优先级由 设施 和A level . 可选的 优先 参数,默认为 LOG_INFO ,确定消息优先级。如果设施未编码 优先 使用逻辑或 (LOG_INFO | LOG_USER )中给出的值 openlog() 调用被使用。

如果 openlog() 在调用之前未被调用到 syslog()openlog() 将不带参数调用。

提出一个 auditing event syslog.syslog 带着论据 prioritymessage .

syslog.openlog([ident[, logoption[, facility]]])

后续记录选项 syslog() 可以通过调用设置调用 openlog() . syslog() 将调用 openlog() 如果日志当前未打开,则不带参数。

可选的 识别的 关键字参数是一个字符串,它在每条消息前面,默认为 sys.argv[0] 剥离了引导路径组件。可选的 登录选项 关键字参数(默认值为0)是一个位字段——有关要组合的可能值,请参阅下面的内容。可选的 设施 关键字参数(默认为 LOG_USER )为没有显式编码功能的消息设置默认功能。

提出一个 auditing event syslog.openlog 带着论据 identlogoptionfacility .

在 3.2 版更改: 在以前的版本中,不允许使用关键字参数,并且 识别的 是必需的。默认值为 识别的 依赖于系统库,通常 python 而不是python程序文件的名称。

syslog.closelog()

重置系统日志模块值并调用系统库 closelog() .

这会导致模块的行为与最初导入时一样。例如, openlog() 会在第一个 syslog() 调用(如果) openlog() 还没有接到调用),以及 识别的openlog() 参数重置为默认值。

提出一个 auditing event syslog.closelog 没有参数。

syslog.setlogmask(maskpri)

将优先级掩码设置为 马斯普里 并返回上一个遮罩值。呼吁 syslog() 未设置优先级 马斯普里 被忽略。默认设置是记录所有优先级。函数 LOG_MASK(pri) 计算单个优先级的掩码 pri . 函数 LOG_UPTO(pri) 计算到和包括以下所有优先级的掩码 pri .

提出一个 auditing event syslog.setlogmask 带着论证 maskpri .

模块定义以下常量:

优先级(从高到低):

LOG_EMERGLOG_ALERTLOG_CRITLOG_ERRLOG_WARNINGLOG_NOTICELOG_INFOLOG_DEBUG .

设施:

LOG_KERNLOG_USERLOG_MAILLOG_DAEMONLOG_AUTHLOG_LPRLOG_NEWSLOG_UUCPLOG_CRONLOG_SYSLOGLOG_LOCAL0LOG_LOCAL7 ,以及,如果在 <syslog.h>LOG_AUTHPRIV .

日志选项:

LOG_PIDLOG_CONSLOG_NDELAY ,以及,如果在 <syslog.h>LOG_ODELAYLOG_NOWAITLOG_PERROR .

实例

简单的例子

一组简单的例子:

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...')