目次

前のトピックへ

35.14. nis — Sun の NIS (Yellow Pages) へのインタフェース

次のトピックへ

35.16. commands — コマンド実行ユーティリティ

このページ

35.15. syslog — Unix syslog ライブラリルーチン群

このモジュールでは Unix syslog ライブラリルーチン群へのインタフェースを提供します。 syslog の便宜レベルに関する詳細な記述は Unix マニュアルページを参照してください。

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

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

syslog.syslog([priority], message)

文字列 message をシステムログ機構に送信します。末尾の改行文字は必要に応じて追加されます。各メッセージは facility および level からなる優先度でタグ付けされます。オプションの priority 引数はメッセージの優先度を定義します。標準の値は LOG_INFO です。 priority 中に、便宜レベルが (LOG_INFO | LOG_USER のように) 論理和を使ってコード化されていない場合、 openlog() を呼び出した際の値が使われます。

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

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

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

オプションの ident キーワード引数は全てのメッセージの先頭に付く文字列で、デフォルトでは sys.argv[0] から前方のパス部分を取り除いたものです。

オプションの logopt キーワード引数 (デフォルトは 0) はビットフィールドです。組み合わせられる値については下記を参照してください。

オプションの facility キーワード引数 (デフォルトは LOG_USER) は明示的に facility が encode されていないメッセージに設定される facility です。

syslog.closelog()

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

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

syslog.setlogmask(maskpri)

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

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

優先度 (高い優先度順):
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_LOCAL0 から LOG_LOCAL7 。
ログオプション:
<syslog.h> で定義されている場合、 LOG_PID 、 LOG_CONS 、 LOG_NDELAY 、 LOG_NOWAIT 、および LOG_PERROR 。

35.15.1. 例

35.15.1.1. シンプルな例

1つ目のシンプルな例:

import syslog

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

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

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