syslog --- Unix syslog 库例程¶
此模块提供一个到 Unix syslog 库例程的接口。参考 Unix 手册页了解关于 syslog 设施的详细描述。
适用范围: Unix, not WASI, not iOS.
此模块包装了系统 syslog 例程族。一个能与 syslog 服务器对话的纯 Python 库则在 logging.handlers 模块中以 SysLogHandler 类的形式提供。
这个模块定义了以下函数:
- syslog.syslog(message)¶
- syslog.syslog(priority, message)
将字符串 message 发送到系统日志记录器。如有必要会添加末尾换行符。每条消息都带有一个由 facility 和 level 组成的优先级标签。可选的 priority 参数默认值为
LOG_INFO,它确定消息的优先级。如果未在 priority 中使用逻辑或 (LOG_INFO | LOG_USER) 对 facility 进行编码,则会使用在openlog()调用中所给定的值。If
openlog()has not been called prior to the call tosyslog(),openlog()will be called with no arguments.引发一个 审计事件
syslog.syslog并附带参数priority,message.在 3.2 版本发生变更: In previous versions,
openlog()would not be called automatically if it wasn't called prior to the call tosyslog(), deferring to the syslog implementation to callopenlog().在 3.12 版本发生变更: This function is restricted in subinterpreters. (Only code that runs in multiple interpreters is affected and the restriction is not relevant for most users.)
openlog()must be called in the main interpreter beforesyslog()may be used in a subinterpreter. Otherwise it will raiseRuntimeError.
- syslog.openlog([ident[, logoption[, facility]]])¶
Logging options of subsequent
syslog()calls can be set by callingopenlog().syslog()will callopenlog()with no arguments if the log is not currently open.可选的 ident 关键字参数是在每条消息前添加的字符串,默认为
sys.argv[0]去除打头的路径部分。可选的 logoption 关键字参数(默认为 0)是一个位字段 -- 请参见下文了解可能的组合值。可选的 facility 关键字参数 (默认为LOG_USER) 为没有显式编码 facility 的消息设置默认的 facility。引发一个 审计事件
syslog.openlog并附带参数ident,logoption,facility.在 3.2 版本发生变更: 在之前的版本中,不允许使用关键字参数,并且要求必须有 ident。
在 3.12 版本发生变更: 此函数在子解释器中受到限制。 (该限制只影响在多解释器中运行的代码因而与大多数用户无关。)此函数只能在主解释器中被调用。 如果在子解释器中被调用它将引发
RuntimeError。
- syslog.closelog()¶
重置 syslog 模块值并调用系统库
closelog()。This causes the module to behave as it does when initially imported. For example,
openlog()will be called on the firstsyslog()call (ifopenlog()hasn't already been called), and ident and otheropenlog()parameters are reset to defaults.引发一个不带参数的 审计事件
syslog.closelog。在 3.12 版本发生变更: 此函数在子解释器中受到限制。 (该限制只影响在多解释器中运行的代码因而与大多数用户无关。)此函数只能在主解释器中被调用。 如果在子解释器中被调用它将引发
RuntimeError。
- syslog.setlogmask(maskpri)¶
Set the priority mask to maskpri and return the previous mask value. Calls to
syslog()with a priority level not set in maskpri are ignored. The default is to log all priorities. The functionLOG_MASK(pri)calculates the mask for the individual priority pri. The functionLOG_UPTO(pri)calculates the mask for all priorities up to and including 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¶
优先级别(从高到低)。
- 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¶
功能项,根据在
<syslog.h>中LOG_AUTHPRIV,LOG_FTP,LOG_NETINFO,LOG_REMOTEAUTH,LOG_INSTALL和LOG_RAS的可用性确定。在 3.13 版本发生变更: 增加了
LOG_FTP,LOG_NETINFO,LOG_REMOTEAUTH,LOG_INSTALL,LOG_RAS和LOG_LAUNCHD。
- syslog.LOG_PID¶
- syslog.LOG_CONS¶
- syslog.LOG_NDELAY¶
- syslog.LOG_ODELAY¶
- syslog.LOG_NOWAIT¶
- syslog.LOG_PERROR¶
日志选项,根据在
<syslog.h>中LOG_ODELAY,LOG_NOWAIT和LOG_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...')