syslog
--- Unix syslog ライブラリルーチン群¶
このモジュールでは Unix syslog
ライブラリルーチン群へのインターフェースを提供します。syslog
の便宜レベルに関する詳細な記述は Unix マニュアルページを参照してください。
Availability: 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
です。 priority 中に、便宜レベルが (LOG_INFO | LOG_USER
のように) 論理和を使ってコード化されていない場合、openlog()
を呼び出した際の値が使われます。syslog()
が呼び出される前にopenlog()
が呼び出されなかった場合、openlog()
が引数なしで呼び出されます。引数
priority
,message
を指定して 監査イベントsyslog.syslog
を送出します。バージョン 3.2 で変更: In previous versions,
openlog()
would not be called automatically if it wasn't called prior to the call tosyslog()
, deferring to the syslog implementation to callopenlog()
.バージョン 3.12 で変更: This function is restricted in subinterpreters. (Only code that runs in multiple interpreters is affected and the restriction is not relevant for most users.)
openlog()
must be called in the main interpreter beforesyslog()
may be used in a subinterpreter. Otherwise it will raiseRuntimeError
.
- syslog.openlog([ident[, logoption[, facility]]])¶
openlog()
関数を呼び出すことで以降のsyslog()
の呼び出しに対するログオプションを設定することができます。ログがまだ開かれていない状態でsyslog()
を呼び出すとopenlog()
が引数なしで呼び出されます。オプションの ident キーワード引数は全てのメッセージの先頭に付く文字列で、デフォルトでは
sys.argv[0]
から前方のパス部分を取り除いたものです。オプションの logoption キーワード引数 (デフォルトは 0) はビットフィールドです。組み合わせられる値については下記を参照してください。オプションの facility キーワード引数 (デフォルトはLOG_USER
) は明示的に facility が encode されていないメッセージに設定される facility です。引数
ident
, logoptiona`,facility
を指定して 監査イベントsyslog.openlog
を送出します。バージョン 3.2 で変更: In previous versions, keyword arguments were not allowed, and ident was required.
バージョン 3.12 で変更: This function is restricted in subinterpreters. (Only code that runs in multiple interpreters is affected and the restriction is not relevant for most users.) This may only be called in the main interpreter. It will raise
RuntimeError
if called in a subinterpreter.
- syslog.closelog()¶
syslog モジュールの値をリセットし、システムライブラリの
closelog()
を呼び出します。この関数を呼ぶと、モジュールが最初に import されたときと同じようにふるまいます。例えば、(
openlog()
を呼び出さないで)syslog()
を最初に呼び出したときに、openlog()
が呼び出され、 ident やその他のopenlog()
の引数はデフォルト値にリセットされます。引数無しで 監査イベント
syslog.closelog
を送出します。バージョン 3.12 で変更: This function is restricted in subinterpreters. (Only code that runs in multiple interpreters is affected and the restriction is not relevant for most users.) This may only be called in the main interpreter. It will raise
RuntimeError
if called in a subinterpreter.
- syslog.setlogmask(maskpri)¶
優先度マスクを maskpri に設定し、以前のマスク値を返します。 maskpri に設定されていない優先度レベルを持った
syslog()
の呼び出しは無視されます。標準では全ての優先度をログ出力します。関数LOG_MASK(pri)
は個々の優先度 pri に対する優先度マスクを計算します。関数LOG_UPTO(pri)
は優先度 pri までの全ての優先度を含むようなマスクを計算します。引数
maskpri
を指定して 監査イベントsocket.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¶
Facilities, depending on availability in
<syslog.h>
forLOG_AUTHPRIV
,LOG_FTP
,LOG_NETINFO
,LOG_REMOTEAUTH
,LOG_INSTALL
andLOG_RAS
.バージョン 3.13 で変更: Added
LOG_FTP
,LOG_NETINFO
,LOG_REMOTEAUTH
,LOG_INSTALL
,LOG_RAS
, andLOG_LAUNCHD
.
- syslog.LOG_PID¶
- syslog.LOG_CONS¶
- syslog.LOG_NDELAY¶
- syslog.LOG_ODELAY¶
- syslog.LOG_NOWAIT¶
- syslog.LOG_PERROR¶
Log options, depending on availability in
<syslog.h>
forLOG_ODELAY
,LOG_NOWAIT
andLOG_PERROR
.
使用例¶
シンプルな例¶
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...')