syslog、openlog、closelog、または setlogmask サブルーチン
目的
システム・ログを制御します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <syslog.h>
void openlog ( ID, LogOption, Facility) const char *ID; int LogOption, Facility;
void syslog ( 優先順位, 値, ... ) int 優先順位; const char *Value;
void closelog () (void closelog ())
int setlogmask( MaskPriority) int MaskPriority;
void bsdlog (Priority, 値,...) int 優先順位; const char *Value;
説明
syslog サブルーチンは、 syslogd コマンドによって保守されるシステム・ログにメッセージを書き込みます。
このメッセージは printf fmt 文字列に似ていますが、 %m が errno グローバル変数から取得された現在のエラー・メッセージに置き換えられる点が異なります。 必要に応じて、末尾の改行をメッセージに追加することができます。
メッセージは、 syslogd コマンドによって読み取られ、システム・コンソールまたはログ・ファイルに書き込まれるか、該当するホスト上の syslogd コマンドに転送されます。
特殊な処理が必要な場合は、 openlog サブルーチンを使用してログ・ファイルを初期化できます。
メッセージには、それぞれの 優先順位 のタイプを示すコードがタグ付けされます。 優先順位 は、メッセージを生成するシステムの一部を記述する 機能としてエンコードされ、メッセージの重大度を示すレベルとしてエンコードされます。
syslog サブルーチンは、メッセージを syslogd コマンドに渡すことができない場合、メッセージを /dev/console ファイルに書き込みます。 LOG_CONS オプションが設定されている場合。
closelog サブルーチンはログ・ファイルをクローズします。
setlogmask サブルーチンは、 MaskPriority パラメーターのビット・マスクを使用して、新しいログ優先順位マスクを設定し、前のマスクを戻します。
sys/syslog.h ファイル内の LOG_MASK および LOG_UPTO マクロは、優先順位マスクを作成するために使用されます。 特定のレベルのメッセージのロギングを許可しない優先順位マスクを使用して syslog サブルーチンを呼び出すと、サブルーチンはメッセージをログに記録せずに戻ります。
パラメーター
| 項目 | 説明 |
|---|---|
| id | すべてのメッセージの先頭に付加されるストリングを含みます。 Facility パラメーターは、明示的な機能エンコードを持たないメッセージに割り当てられるように、前のリストのデフォルト機能をエンコードします。 |
| LogOption | ロギング・オプションを示すビット・フィールドを指定します。 LogOption の値は、次のとおりです。
|
| 機能 | 以下のどの値がメッセージを生成したかを指定します。
|
| Priority | メッセージを生成するシステムの部分を指定し、レベルとしてメッセージの重大度を示します。 重大度のレベルは、以下のリストから選択されます。
|
| MaskPriority | マスク内のビットによって示されるレベルのロギングを使用可能にします。これらのレベルは、ビットが設定されていない場合は設定され、使用不可になります。 デフォルトのマスクでは、すべての優先順位をログに記録できます。 |
| VALUE | Value パラメーターに指定する値を指定し、 printf サブルーチンの Format パラメーターと同じ構文に従います。 |
例
- セキュリティー・ブリーチの可能性に関するエラー・メッセージをログに記録するには、次のように入力します。
syslog (LOG_ALERT, "who:internal error 23"); - ログ・ファイルを初期化し、ログ優先順位マスクを設定し、エラー・メッセージをログに記録するには、次のように入力します。
openlog ("ftpd", LOG_PID, LOG_DAEMON); setlogmask (LOG_UPTO (LOG_ERR)); syslog (LOG_INFO, ""); - システムからのエラー・メッセージをログに記録するには、次のように入力します。
syslog (LOG_INFO | LOG_LOCAL2, "foobar error: %m");