syslog --- Unix syslog ライブラリルーチン群


このモジュールは Unix の syslog ライブラリルーチンへのインターフェースを提供します。 syslog の機能の詳しい説明は、Unix のマニュアルページを参照してください。

利用可能な環境: Unix, not WASI, not iOS.

このモジュールはシステムの syslog ファミリのルーチンをラップしています。 syslog サーバーと通信できる pure Python のライブラリが、 logging.handlers モジュールの SysLogHandler にあります。

このモジュールには、以下の関数が定義されています:

syslog.syslog(message)
syslog.syslog(priority, message)

文字列 message をシステムロガーに送信します。 必要に応じて末尾に改行を追加します。 各メッセージには、facility と level からなる優先度が付けられます。 省略可能な priority 引数がメッセージの優先度を指定し、デフォルトは LOG_INFO です。 LOG_INFO | LOG_USER のように論理和を使って priority にファシリティを組み込んでいなければ、openlog() の呼び出しで指定した値を使います。

syslog() が呼び出される前に openlog() が呼び出されなかった場合、 openlog() が引数なしで呼び出されます。

引数 priority, message を指定して 監査イベント syslog.syslog を送出します。

バージョン 3.2 で変更: 以前のバージョンでは、syslog() より前に openlog() を呼び出していなくても、自動では呼び出されませんでした。 openlog() の呼び出しは syslog の実装に任されていました。

バージョン 3.12 で変更: この関数のサブインタープリタでの使用には制限があります (複数のインタープリタで実行されるコードだけが影響を受け、ほとんどのユーザーには関係ありません)。 サブインタープリタで syslog() を使う前に、メインインタープリタで openlog() を呼び出す必要があります。 そうしないと RuntimeError を送出します。

syslog.openlog([ident[, logoption[, facility]]])

openlog() 関数を呼び出すことで以降の syslog() の呼び出しに対するログオプションを設定することができます。ログがまだ開かれていない状態で syslog() を呼び出すと openlog() が引数なしで呼び出されます。

オプションの ident キーワード引数は全てのメッセージの先頭に付く文字列で、デフォルトでは sys.argv[0] から前方のパス部分を取り除いたものです。オプションの logoption キーワード引数 (デフォルトは 0) はビットフィールドです。組み合わせられる値については下記を参照してください。オプションの facility キーワード引数 (デフォルトは LOG_USER) は明示的に facility が encode されていないメッセージに設定される facility です。

引数 ident, logoption, facility を指定して 監査イベント syslog.openlog を送出します。

バージョン 3.2 で変更: 以前のバージョンではキーワード引数を使えず、ident は必須でした。

バージョン 3.12 で変更: この関数のサブインタープリタでの使用には制限があります (複数のインタープリタで実行されるコードだけが影響を受け、ほとんどのユーザーには関係ありません)。 メインインタープリタでのみ呼び出せます。 サブインタープリタで呼び出すと RuntimeError を送出します。

syslog.closelog()

syslog モジュールの値をリセットし、システムライブラリの closelog() を呼び出します。

この関数を呼ぶと、モジュールが最初に import されたときと同じようにふるまいます。例えば、(openlog() を呼び出さないで) syslog() を最初に呼び出したときに、 openlog() が呼び出され、 ident やその他の openlog() の引数はデフォルト値にリセットされます。

引数無しで 監査イベント syslog.closelog を送出します。

バージョン 3.12 で変更: この関数のサブインタープリタでの使用には制限があります (複数のインタープリタで実行されるコードだけが影響を受け、ほとんどのユーザーには関係ありません)。 メインインタープリタでのみ呼び出せます。 サブインタープリタで呼び出すと RuntimeError を送出します。

syslog.setlogmask(maskpri)

優先度マスクを maskpri に設定し、以前のマスク値を返します。 maskpri に設定されていない優先度レベルを持った syslog() の呼び出しは無視されます。標準では全ての優先度をログ出力します。関数 LOG_MASK(pri) は個々の優先度 pri に対する優先度マスクを計算します。関数 LOG_UPTO(pri) は優先度 pri までの全ての優先度を含むようなマスクを計算します。

引数 maskpri を指定して 監査イベント syslog.setlogmask を送出します。

このモジュールでは以下の定数を定義しています:

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

ファシリティです。 LOG_AUTHPRIV、LOG_FTP、LOG_NETINFO、LOG_REMOTEAUTH、LOG_INSTALL、LOG_RAS は、<syslog.h> に定義されている場合に利用できます。

バージョン 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

ログオプションです。 LOG_ODELAY、LOG_NOWAIT、LOG_PERROR は、<syslog.h> に定義されている場合に利用できます。

使用例

シンプルな例

1つ目のシンプルな例:

import syslog

syslog.syslog('Processing started')
if error:
    syslog.syslog(syslog.LOG_ERR, 'Processing started')

いくつかのログオプションを設定する例。ログメッセージにプロセスIDを含み、メッセージをメールのログ用の facility にメッセージを書きます:

syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('E-mail processing initiated...')