Unix syslog 库例程¶
此模块提供一个接口到Unix syslog
日常库. 参考 Unix 手册页关于 syslog
设施的详细描述.
可用性: Unix, 非 Emscripten, 非 WASI。
This module wraps the system syslog
family of routines. A pure Python
library that can speak to a syslog server is available in the
logging.handlers
module as SysLogHandler
.
这个模块定义了以下函数:
- syslog.syslog(message)¶
- syslog.syslog(priority, message)
将字符串 message 发送到系统日志记录器。 如有必要会添加末尾换行符。 每条消息都带有一个由 facility 和 level 组成的优先级标价签。 可选的 priority 参数默认值为
LOG_INFO
,它确定消息的优先级。 如果未在 priority 中使用逻辑或 (LOG_INFO | LOG_USER
) 对 facility 进行编码,则会使用在openlog()
调用中所给定的值。如果
openlog()
未在对syslog()
的调用之前被调用,则将不带参数地调用openlog()
。引发 审计事件
syslog.syslog
使用参数priority
,message
.在 3.12 版本发生变更: 此函数在子解释器中受到限制。 (该限制只影响在多解释器中运行的代码因而与大多数用户无关。)
openlog()
必须在子解释器使用syslog()
之前在主解释器中被调用。 否则它将引发RuntimeError
。
- syslog.openlog([ident[, logoption[, facility]]])¶
后续
syslog()
调用的日志选项可以通过调用openlog()
来设置。 如果日志当前未打开则syslog()
将不带参数地调用openlog()
。可选的 ident 关键字参数是在每条消息前添加的字符串,默认为
sys.argv[0]
去除打头的路径部分。 可选的 logoption 关键字参数(默认为 0)是一个位字段 -- 请参见下文了解可能的组合值。 可选的 facility 关键字参数 (默认为LOG_USER
) 为没有显式编码 facility 的消息设置默认的 facility。引发 审计事件
syslog.openlog
使用参数ident
,logoption
,facility
.在 3.2 版本发生变更: 在之前的版本中,不允许使用关键字参数,并且要求必须有 ident。
在 3.12 版本发生变更: 此函数在子解释器中受到限制。 (该限制只影响在多解释器中运行的代码因而与大多数用户无关。) 此函数只能在主解释器中被调用。 如果在子解释器中被调用它将引发
RuntimeError
。
- syslog.closelog()¶
重置日志模块值并且调用系统库
closelog()
.这使得此模块在初始导入时行为固定。 例如,
openlog()
将在首次调用syslog()
时被调用(如果openlog()
还未被调用过),并且 ident 和其他openlog()
形参会被重置为默认值。引发一个 审计事件
syslog.closelog
不附带任何参数。在 3.12 版本发生变更: 此函数在子解释器中受到限制。 (该限制只影响在多解释器中运行的代码因而与大多数用户无关。) 此函数只能在主解释器中被调用。 如果在子解释器中被调用它将引发
RuntimeError
。
- syslog.setlogmask(maskpri)¶
将优先级掩码设为 maskpri 并返回之前的掩码值。 调用
syslog()
并附带未在 maskpri 中设置的优先级将会被忽略。 默认设置为记录所有优先级。 函数LOG_MASK(pri)
可计算单个优先级 pri 的掩码。 函数LOG_UPTO(pri)
可计算包括 pri 在内的所有优先级的掩码。引发一个 审计事件
syslog.setlogmask
附带参数maskpri
。
此模块定义了一下常量:
- syslog.LOG_EMERG¶
- syslog.LOG_ALERT¶
- syslog.LOG_CRIT¶
- syslog.LOG_ERR¶
- syslog.LOG_WARNING¶
- syslog.LOG_NOTICE¶
- syslog.LOG_INFO¶
- syslog.LOG_DEBUG¶
Priority levels (high to low).
- syslog.LOG_AUTH¶
- syslog.LOG_AUTHPRIV¶
- syslog.LOG_CRON¶
- syslog.LOG_DAEMON¶
- syslog.LOG_FTP¶
- syslog.LOG_INSTALL¶
- syslog.LOG_KERN¶
- syslog.LOG_LAUNCHD¶
- syslog.LOG_LPR¶
- syslog.LOG_MAIL¶
- syslog.LOG_NETINFO¶
- syslog.LOG_NEWS¶
- syslog.LOG_RAS¶
- syslog.LOG_REMOTEAUTH¶
- syslog.LOG_SYSLOG¶
- syslog.LOG_USER¶
- syslog.LOG_UUCP¶
- syslog.LOG_LOCAL0¶
- syslog.LOG_LOCAL1¶
- syslog.LOG_LOCAL2¶
- syslog.LOG_LOCAL3¶
- syslog.LOG_LOCAL4¶
- syslog.LOG_LOCAL5¶
- syslog.LOG_LOCAL6¶
- syslog.LOG_LOCAL7¶
Facilities, depending on availability in
<syslog.h>
forLOG_AUTHPRIV
,LOG_FTP
,LOG_NETINFO
,LOG_REMOTEAUTH
,LOG_INSTALL
andLOG_RAS
.在 3.13 版本发生变更: Added
LOG_FTP
,LOG_NETINFO
,LOG_REMOTEAUTH
,LOG_INSTALL
,LOG_RAS
, andLOG_LAUNCHD
.
- syslog.LOG_PID¶
- syslog.LOG_CONS¶
- syslog.LOG_NDELAY¶
- syslog.LOG_ODELAY¶
- syslog.LOG_NOWAIT¶
- syslog.LOG_PERROR¶
Log options, depending on availability in
<syslog.h>
forLOG_ODELAY
,LOG_NOWAIT
andLOG_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...')