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