35.13. syslog - Unix syslog库例程

此模块提供到Unix syslog库例程的接口。有关syslog工具的详细说明,请参阅Unix手册页。

此模块包装系统syslog例程系列。logging.handlers模块中可以使用可以与syslog服务器通信的纯Python库,如SysLogHandler

该模块定义了以下功能:

syslog.syslog(message)
syslog。 t>> syslog prioritymessage

将字符串消息发送到系统记录器。如果需要,添加尾随换行符。每个消息都标记有由设施级别组成的优先级。可选的priority参数(默认为LOG_INFO)确定消息优先级。如果在优先级中使用逻辑或(LOG_INFO | LOG_USER t1 >),使用openlog()调用中给出的值。

If openlog() has not been called prior to the call to syslog(), openlog() will be called with no arguments.

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

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

可选的ident关键字参数是一个字符串,附加在每个消息前面,默认为sys.argv[0]可选的标识关键字参数(默认值为0)是一个位字段 - 请参阅下面的可能的值组合。可选的设施关键字参数(默认为LOG_USER)为没有显式编码的消息设置默认工具。

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

syslog.closelog()

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

这导致模块在初始导入时的行为。例如,openlog()将在第一个syslog()调用(如果openlog()尚未被调用)和ident和其他openlog()参数复位为默认值。

syslog.setlogmask(maskpri)

将优先级掩码设置为maskpri,并返回上一个掩码值。Calls to syslog() with a priority level not set in maskpri are ignored. 默认值为记录所有优先级。函数LOG_MASK(pri)计算单个优先级pri的掩码。函数LOG_UPTO(pri)计算所有优先级的掩码,包括pri

模块定义以下常量:

优先级(从高到低):
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 to LOG_LOCAL7, and, if defined in <syslog.h>, LOG_AUTHPRIV.
日志选项:
LOG_PID, LOG_CONS, LOG_NDELAY, and, if defined in <syslog.h>, LOG_ODELAY, LOG_NOWAIT, and LOG_PERROR.

35.13.1. Examples

35.13.1.1. Simple example

一组简单的例子:

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