35.13. syslog
- Unix syslog库例程¶
此模块提供到Unix syslog
库例程的接口。有关syslog
工具的详细说明,请参阅Unix手册页。
此模块包装系统syslog
例程系列。在logging.handlers
模块中可以使用可以与syslog服务器通信的纯Python库,如SysLogHandler
。
该模块定义了以下功能:
-
syslog.
syslog
(message)¶ syslog。 t>>
syslog
( priority,message )将字符串消息发送到系统记录器。如果需要,添加尾随换行符。每个消息都标记有由设施和级别组成的优先级。可选的priority参数(默认为
LOG_INFO
)确定消息优先级。如果在优先级中使用逻辑或(LOG_INFO | LOG_USER t1 >),使用
openlog()
调用中给出的值。If
openlog()
has not been called prior to the call tosyslog()
,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中已更改:在以前的版本中,不允许使用关键字参数,并且需要使用ident。ident的默认值取决于系统库,通常是
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
toLOG_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
, andLOG_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...')