# `syslog` --- Unix syslog ライブラリルーチン群

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

このモジュールはシステムの `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` を送出します。

`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 で変更: 前のバージョンでは、キーワード引数が使えず、 ident が必須でした。 ident のデフォルトはシステムライブラリに依存しており、 Python プログラムのファイル名ではなく `python` となっていることが多かった。

`syslog.``closelog`()

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

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

  引数無しで 監査イベント `syslog.closelog` を送出します。

`syslog.``setlogmask`(maskpri)

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

  引数 `maskpri` を指定して 監査イベント `socket.setlogmask` を送出します。

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

優先度 (降順):

  `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_SYSLOG` 、 `LOG_LOCAL0` から `LOG_LOCAL7` 、および `<syslog.h>` で定義されていれば、 `LOG_AUTHPRIV` 。

ログオプション:

  `LOG_PID` 、 `LOG_CONS` 、 `LOG_NDELAY` 、また `<syslog.h>` で定義されている場合、 `LOG_ODELAY`、 `LOG_NOWAIT` 、および `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...')