SYSLOG(3) — NEWS-OS Programmer’s Manual
名称
syslog, openlog, closelog, setlogmask − システムログを制御する
形式
#include <syslog.h>
openlog(ident, logopt, facility)
char ∗ident;
syslog(priority, message, parameters ... )
char ∗message;
closelog()
setlogmask(maskpri)
解説
syslog は、 syslogd(8) によって保守されるシステムログに対してメッセージ (message) を書き込むための準備を 行います。 メッセージには、 優先順位が付けられます。 %m が errno から引き出される現在のエラーメッセージで置き換えられることを 除けば、 このメッセージは printf(3) 用の文字列に類似しています。 必要ならば、 後続の改行文字が加えられます。 このメッセージは、 syslogd(8) で読み込まれ、 システムコンソールやログファイルへ書き出されるか、 あるいは他のホスト上の syslogd へ転送されます。
優先順位は、 機構およびレベルとしてエンコードされます。 機構は、 メッセージを 生成するシステム部分を 表します。 レベルは、 次に並べられたリストから選択されます。
LOG_EMERGパニック状態。 一般にこれは全てのユーザにブロードキャストされる。
LOG_ALERTシステムデータベースの不良等、 すぐに修正するべき状態。
LOG_CRITハードデバイスエラーなど、 危険な状態。
LOG_ERRエラー。
LOG_WARNING警告メッセージ。
LOG_NOTICEエラーではないが、 特別に処理されるべき状態。
LOG_INFO参考メッセージ。
LOG_DEBUG通常、 プログラムを デバッグする場合のみに使用する情報を 含むメッセージ。
syslog が syslogd にメッセージを 渡せない場合、 オプション LOG_CONS (下記参照) がセットされているならば、 syslog は /dev/console にメッセージを 出力しようとします。
特殊な処理が必要な場合、 ログファイルを 初期化するために、 openlog を 呼び出すことができます。 引数 ident は、 各メッセージに対して前置き挿入される文字列です。 logopt は、 ログのオプションを 指定する小フィールドです。 現在の logopt 用の値は次の通りです。
LOG_PIDプロセス ID を そのメッセージとともに記録する。 デーモンの存在を 識別するのに有効である。
LOG_CONSsyslogd にメッセージを 送信できない場合、 強制的にコンソールへ出力させる。 syslog はコンソールを オープンする前に fork するので、 このオプションは制御端末を 持たないデーモンプロセス中で使用しても安全である。
LOG_NDELAY直ちに、 syslogd へのコネクションを オープンする。 一般にこのオープンは、 最初のメッセージが記録されるまで、 遅延される。 ファイルディスクリプタが割り当てられる順番を 管理する必要のあるプログラムに有用。
LOG_NOWAITコンソール上にメッセージを記録するために fork された子プロセスの終了を待たない。 このオプションは、SIGCHILD による子プロセス終了の連絡を 利用するプロセスによって使用されるべきである。 このオプションを使用しないと syslog は終了ステータスが得られるまでブロックする。
引数 facility は、コード化された明示的な機構を持たない メッセージ全てに対して割り当てられるデフォルトの機構を コード化したものです。
LOG_KERNカーネルにより生成されるメッセージ。 これらは、 どのようなユーザプロセスによっても生成され得ない。
LOG_USER任意のユーザプロセスにより生成されるメッセージ。 何も指定されない場合、 これはデフォルト機構の識別子となる。
LOG_MAILメールシステム。
LOG_DAEMONftpd(8) や routed(8) などのようなシステムデーモン。
LOG_AUTHlogin(1)、 su(1)、 getty(8) などのような委任システム。
LOG_LPRlpr(1)、 lpc(8)、 lpd(8) などのようなラインプリンタスプールシステム。
LOG_LOCAL0ローカル使用のための予備。 LOG_LOCAL1 〜 LOG_LOCAL7 と同様。
closelog は、 ログファイルを クローズするのに使用できます。
setlogmask は maskpri にログの優先順位マスクを セットし、 以前のマスクを 返します。 優先順位を maskpri にセットしないで syslog を 呼び出すと、 それは拒絶されます。 個人の優先順位 pri のマスクは、 マクロ LOG_MASK(pri) によって計算されます。 また、 優先順位全てが toppri に達し、 かつそれを 含む場合のマスクは、 マクロ LOG_UPTO(toppri) によって与えられます。 デフォルトでは、 全ての優先順位が記録されます。
使用例
syslog(LOG_ALERT, "who: internal error 23");
openlog("ftpd", LOG_PID, LOG_DAEMON);
setlogmask(LOG_UPTO(LOG_ERR));
syslog(LOG_INFO, "Connection from host %d", CallingHost);
syslog(LOG_INFO|LOG_LOCAL2, "foobar error: %m");
関連事項
バグ
parameters は、最大 5 個までです。
NEWS-OSRelease 4.2.1R