syslog — Unix syslog 库例程


该模块提供了与 Unix syslog库例程的接口。有关syslogFunction的详细说明,请参见 Unix 手册页。

此模块包装系统syslog例程系列。 logging.handlers模块中的SysLogHandler提供了可以与 syslog 服务器对话的纯 Python 库。

该模块定义了以下Function:

  • syslog. syslog(* message *)

  • syslog. syslog(优先级消息)

    • 将字符串* message 发送到系统 Logger。如有必要,添加尾随换行符。每个消息都被标记为具有 facility level 的优先级。可选的 priority 参数(默认为LOG_INFO)确定邮件优先级。如果未使用逻辑或(LOG_INFO | LOG_USER)在 priority *中对Function进行编码,则使用openlog()调用中给出的值。

如果在调用syslog()之前尚未调用openlog(),则将不带任何参数地调用openlog()

用参数prioritymessage引发auditing event syslog.syslog

  • syslog. openlog([* ident * [,* logoption * [,设施]]])

可选的* ident 关键字参数是一个字符串,该字符串位于每个消息之前,并且默认为sys.argv[0],并且前导路径部分已去除。可选的 logoption 关键字参数(默认为 0)是一个位字段–有关合并的可能值,请参见下文。可选的 facility *关键字参数(默认值为LOG_USER)为没有显式编码的Function的邮件设置默认Function。

用参数identlogoptionfacility引发auditing event syslog.openlog

在版本 3.2 中更改:在以前的版本中,不允许使用关键字参数,并且需要* ident *。 * ident *的默认值取决于系统库,通常为python而不是 Python 程序文件的名称。

  • syslog. closelog ( )
    • 重置 syslog 模块值,然后调用系统库closelog()

这导致模块的行为与最初导入时的行为相同。例如,在第一个syslog()调用中将调用openlog()(如果尚未调用openlog()),并且* ident *和其他openlog()参数被重置为默认值。

引发不带参数的auditing event syslog.closelog

  • syslog. setlogmask(* maskpri *)
    • 将优先级掩码设置为* maskpri 并返回先前的掩码值。在 maskpri 中未设置优先级的syslog()调用将被忽略。默认为记录所有优先级。函数LOG_MASK(pri)计算单个优先级 pri 的掩码。函数LOG_UPTO(pri)计算所有优先级的掩码,直到 pri *为止。

用参数maskpri引发auditing event syslog.setlogmask

该模块定义以下常量:

  • 优先级(从高到低):

    • LOG_EMERG , LOG_ALERT , LOG_CRIT , LOG_ERR , LOG_WARNING , LOG_NOTICE , LOG_INFO , LOG_DEBUG .
  • Facilities:

    • LOG_KERNLOG_USERLOG_MAILLOG_DAEMONLOG_AUTHLOG_LPRLOG_NEWSLOG_UUCPLOG_CRONLOG_SYSLOGLOG_LOCAL0LOG_LOCAL7,如果在<syslog.h>LOG_AUTHPRIV中定义。
  • Log options:

    • LOG_PIDLOG_CONSLOG_NDELAY,以及(如果在<syslog.h>中定义),LOG_ODELAYLOG_NOWAITLOG_PERROR

Examples

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...')