syslog
— Unix syslog 库例程¶
此模块提供与 Unix syslog
库例程的接口。有关 syslog
功能的详细说明,请参阅 Unix 手册页。
可用性: Unix,不包括 Emscripten,不包括 WASI。
此模块包装了系统 syslog
例程族。一个可以与 syslog 服务器通信的纯 Python 库在 logging.handlers
模块中以 SysLogHandler
的形式提供。
该模块定义了以下函数
- syslog.syslog(message)¶
- syslog.syslog(priority, message)
将字符串 message 发送到系统日志记录器。如果需要,将在末尾添加换行符。每个消息都用由 facility 和 level 组成的优先级标记。可选的 priority 参数(默认为
LOG_INFO
)确定消息优先级。如果 facility 未使用逻辑或 (LOG_INFO | LOG_USER
) 在 priority 中编码,则使用openlog()
调用中给出的值。如果在调用
syslog()
之前未调用openlog()
,则openlog()
将在没有参数的情况下被调用。引发一个 审计事件
syslog.syslog
,参数为priority
、message
。在版本 3.12 中更改: 此函数在子解释器中受到限制。(只有在多个解释器中运行的代码才会受到影响,并且对于大多数用户来说,此限制并不相关。)在子解释器中使用
syslog()
之前,必须在主解释器中调用openlog()
。否则,它将引发RuntimeError
。
- syslog.openlog([ident[, logoption[, facility]]])¶
可以通过调用
openlog()
来设置后续syslog()
调用的日志记录选项。如果日志当前未打开,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()¶
重置 syslog 模块值并调用系统库
closelog()
。这将导致模块的行为与最初导入时相同。例如,
openlog()
将在第一次调用syslog()
时被调用(如果openlog()
尚未被调用),并且 ident 和其他openlog()
参数将重置为默认值。引发一个 审计事件
syslog.closelog
,没有参数。在版本 3.12 中更改: 此函数在子解释器中受到限制。(只有在多个解释器中运行的代码才会受到影响,并且对于大多数用户来说,此限制并不相关。)此函数只能在主解释器中调用。如果在子解释器中调用,它将引发
RuntimeError
。
- syslog.setlogmask(maskpri)¶
将优先级掩码设置为 maskpri 并返回先前的掩码值。使用未在 maskpri 中设置的优先级级别的
syslog()
调用将被忽略。默认情况下,记录所有优先级。函数LOG_MASK(pri)
计算单个优先级 pri 的掩码。函数LOG_UPTO(pri)
计算包括 pri 在内的所有优先级的掩码。引发一个 审计事件
syslog.setlogmask
,参数为maskpri
。
该模块定义了以下常量
- 优先级级别(从高到低)
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
到LOG_LOCAL7
,以及如果在<syslog.h>
中定义,则为LOG_AUTHPRIV
。- 日志选项
LOG_PID
,LOG_CONS
,LOG_NDELAY
,以及如果在<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...')