"syslog" --- Unix syslog library routines
*****************************************

======================================================================

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

Availability: Unix, not Emscripten, not WASI.

This module wraps the system "syslog" family of routines.  A pure
Python library that can speak to a syslog server is available in the
"logging.handlers" module as "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 to
   "syslog()", deferring to the syslog implementation to call
   "openlog()".

   バージョン 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 before
   "syslog()" may be used in a subinterpreter.  Otherwise it will
   raise "RuntimeError".

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" を送出し
   ます。

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

Priority levels (high to low):
   "LOG_EMERG", "LOG_ALERT", "LOG_CRIT", "LOG_ERR", "LOG_WARNING",
   "LOG_NOTICE", "LOG_INFO", "LOG_DEBUG".

Facilities:
   "LOG_KERN", "LOG_USER", "LOG_MAIL", "LOG_DAEMON", "LOG_AUTH",
   "LOG_LPR", "LOG_NEWS", "LOG_UUCP", "LOG_CRON", "LOG_SYSLOG",
   "LOG_LOCAL0" to "LOG_LOCAL7", and, if defined in "<syslog.h>",
   "LOG_AUTHPRIV".

Log options:
   "LOG_PID", "LOG_CONS", "LOG_NDELAY", and, if defined in
   "<syslog.h>", "LOG_ODELAY", "LOG_NOWAIT", and "LOG_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...')
