SYSLOG(3)

名前
closelog, openlog, syslog - システムロガーにメッセージを送る

書式
#include <syslog.h>

void openlog( char *ident, int option, int facility )

void syslog( int priority, char *format, ...)

void closelog( void )

説明
closelog() はシステムのログ記録用プログラム(システムロガー syslogd(8) )ヘの接続を終了する。 closelog() は必須ではない。

openlog() はログを出力しようとしているプログラムからログ記録用プログラムへの 接続を開始する。 ident で指定した文字列(通常は openlog() したプログラムの名前)はログ出力の一文一文に追加され、どのプログラム が出力したログかを識別するために使われる。 option と facility については後述する。 openlog() は必須ではなく、必要に応じて syslog() から呼び出される。 syslog() が呼び出した場合、 ident は NULL になる。

syslog() はログメッセージを出力し、 syslogd(8) がそのメッセージを記録する。 priority 引き数は facility と level との組合せで指定する。 facility と level の取りうる値は後述する。残りの format 引き数は printf(3) と似たスタイルの書式とその書式に与える値である。 format 中の2文字 %m はその時点での errno に関連するエラーメッセージ文字列 (strerror) によって置き換えられる。

引き数
ここでは option と facility と priority の値を設定するのに使用されるパラメータを説明する。

  option
下記の値を OR したものが openlog() の option 引き数になる

LOG_CONS
    エラーがあれば、システムロガーに送る一方でシステムコンソールにも直接書く。

LOG_NDELAY
    ログ記録用プログラムとの接続を即座に開始する (通常は、最初のメッセージが記録される時に接続を開く)

LOG_PERROR
    stderr にも出力する

LOG_PID
    個々のメッセージに PID を含める

  facility
facility 引き数はメッセージに記録されるプログラムのタイプを指定するために使われる。 これによって異なるタイプのプログラムからのメッセージは異なる扱いを するように設定ファイル( syslog.conf(5) )に定義できる。

LOG_AUTH
    セキュリティ/認証 メッセージ

LOG_AUTHPRIV
    セキュリティ/認証 メッセージ (プライベート)

LOG_CRON
    クロックデーモン (cron と at)

LOG_DAEMON
    その他のシステムデーモン

LOG_KERN
    カーネルメッセージ

LOG_LOCAL0 から LOG_LOCAL7
    ローカルな使用のためにリザーブされている

LOG_LPR
    ラインプリンタ・サブシステム

LOG_MAIL
    メール・サブシステム

LOG_NEWS
    USENET ニュース・サブシステム

LOG_SYSLOG
    syslogd によって内部的に発行されるメッセージ

LOG_USER (デフォルト)
    一般的なユーザレベルメッセージ

LOG_UUCP
    UUCPサブシステム

  level
これはメッセージの優先度を指定する。 優先度の高いものから低いものの順で下記する。

LOG_EMERG
    システムが使用不可

LOG_ALERT
    直ちに行動を起こさなければならない

LOG_CRIT
    危険な状態

LOG_ERR
    エラーの状態

LOG_WARNING
    ワーニングの状態

LOG_NOTICE
    通常だが重要な状態

LOG_INFO
    インフォメーションメッセージ

LOG_DEBUG
    デバッグレベルのメッセージ

履歴
syslog ファンクション・コールは BSD 4.2 から実装された。

関連項目
logger(1), syslog.conf(5), syslogd(8)