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