syslog
syslog - Unix系统日志库例程
该模块为Unix syslog
库例程提供了一个接口。请参阅Unix手册页以获取该syslog
设施的详细说明。
该模块包装系统syslog
系列的例程。可以与系统日志服务器对话的纯Python库在logging.handlers
模块中可用SysLogHandler
。
该模块定义了以下功能:
syslog.syslog(message)syslog.syslog(priority, message)
将字符串消息发送到系统记录器。 如有必要,可以添加尾随的换行符。 每条消息都标有由设施和级别组成的优先级。 可选的优先级参数(默认为LOG_INFO)决定了消息的优先级。 如果设施未使用逻辑或(LOG_INFO | LOG_USER)优先编码,则使用openlog()调用中给出的值。
如果在调用syslog()之前尚未调用openlog(),则将不带任何参数调用openlog()。
syslog.openlog([ident[, logoption[, facility]]])
后续syslog()调用的日志记录选项可以通过调用openlog()来设置。 如果日志当前未打开,syslog()将会调用openlog()而不带参数。
可选的ident关键字参数是一个字符串,它被添加到每条消息中,并且默认为sys.argv [0],其中剥离了前导路径组件。 可选的logoption关键字参数(默认值为0)是一个位字段 - 请参阅下面的可能值进行组合。 可选的facility关键字参数(默认值为LOG_USER)为没有明确编码设施的消息设置默认设施。
syslog.closelog()
重置系统日志模块值并调用系统库closelog()
。
这会导致模块的行为与最初导入时的行为相同。 例如,将在第一个syslog()调用(如果尚未调用openlog())时调用openlog(),并将ident和其他openlog()参数重置为默认值。
syslog.setlogmask(maskpri)
将优先级掩码设置为maskpri并返回以前的掩码值。 以不在maskpri中设置的优先级调用syslog()将被忽略。 缺省是记录所有优先级。 函数LOG_MASK(pri)计算单个优先级pri的掩码。 函数LOG_UPTO(pri)为所有优先级(包括pri)计算掩码。
该模块定义了以下常量:
优先级(高到低):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_PID,LOG_CONS,LOG_NDELAY,LOG_NOWAIT和LOG_PERROR(如果在<syslog.h>中定义的)。
1.例子
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...')