syslog — Unixのsyslogライブラリルーチン—Pythonのドキュメント

提供:Dev Guides
< PythonPython/docs/3.8/library/syslog
移動先:案内検索

syslog — Unixsyslogライブラリルーチン


このモジュールは、Unix syslogライブラリルーチンへのインターフェイスを提供します。 syslog機能の詳細については、Unixのマニュアルページを参照してください。

このモジュールは、システムsyslogファミリーのルーチンをラップします。 Syslogサーバーと通信できる純粋なPythonライブラリは、 logging.handlers モジュールでSysLogHandlerとして入手できます。

このモジュールは、次の機能を定義します。

syslog.syslog(message)
syslog.syslog(priority, message)

文字列メッセージをシステムロガーに送信します。 必要に応じて、末尾の改行が追加されます。 各メッセージは、ファシリティレベルで構成される優先度でタグ付けされます。 オプションの priority 引数(デフォルトはLOG_INFO)は、メッセージの優先度を決定します。 ファシリティが論理和(LOG_INFO | LOG_USER)を使用して priority でエンコードされていない場合、 openlog()呼び出しで指定された値が使用されます。

syslog()を呼び出す前に openlog()が呼び出されていない場合、openlog()は引数なしで呼び出されます。

syslog.openlog([ident[, logoption[, facility]]])

後続の syslog()呼び出しのログオプションは、 openlog()を呼び出すことで設定できます。 syslog()は、ログが現在開いていない場合、引数なしで openlog()を呼び出します。

オプションの ident キーワード引数は、すべてのメッセージの先頭に追加される文字列であり、デフォルトでsys.argv[0]になり、先頭のパスコンポーネントが削除されます。 オプションの logoption キーワード引数(デフォルトは0)はビットフィールドです。組み合わせることができる値については、以下を参照してください。 オプションの facility キーワード引数(デフォルトはLOG_USER)は、明示的にエンコードされた機能を持たないメッセージのデフォルト機能を設定します。

バージョン3.2での変更:以前のバージョンでは、キーワード引数は許可されておらず、 ident が必要でした。 ident のデフォルトはシステムライブラリに依存しており、多くの場合、Pythonプログラムファイルの名前ではなくpythonでした。

syslog.closelog()

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

これにより、モジュールは最初にインポートされたときと同じように動作します。 たとえば、 openlog()は最初の syslog()呼び出しで呼び出され( openlog()がまだ呼び出されていない場合)、[X139X ] ident およびその他の openlog()パラメーターはデフォルトにリセットされます。

syslog.setlogmask(maskpri)
優先マスクを maskpri に設定し、前のマスク値を返します。 maskpri で優先度レベルが設定されていない syslog()への呼び出しは無視されます。 デフォルトでは、すべての優先順位がログに記録されます。 関数LOG_MASK(pri)は、個々の優先度 pri のマスクを計算します。 関数LOG_UPTO(pri)は、 pri までのすべての優先度のマスクを計算します。

このモジュールは、次の定数を定義します。

優先度(高から低):
LOG_EMERGLOG_ALERTLOG_CRITLOG_ERRLOG_WARNINGLOG_NOTICELOG_INFO、[ X77X] 。
設備:
LOG_KERNLOG_USERLOG_MAILLOG_DAEMONLOG_AUTHLOG_LPRLOG_NEWS、[ X77X] 、LOG_CRONLOG_SYSLOGLOG_LOCAL0からLOG_LOCAL7、および<syslog.h>で定義されている場合は、 [ X175X]。
ログオプション:
LOG_PIDLOG_CONSLOG_NDELAY、および<syslog.h>LOG_ODELAYLOG_NOWAIT、およびLOG_PERROR

簡単な例

例の簡単なセット:

import syslog

syslog.syslog('Processing started')
if error:
    syslog.syslog(syslog.LOG_ERR, 'Processing started')

いくつかのログオプションを設定する例。これらには、ログに記録されたメッセージにプロセスIDが含まれ、メールのログ記録に使用される宛先機能にメッセージが書き込まれます。

syslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_MAIL)
syslog.syslog('E-mail processing initiated...')