Provided by: manpages-ja-dev_0.5.0.0.20161015+dfsg-1_all 

名前
closelog, openlog, syslog, vsyslog - システムロガーにメッセージを送る
書式
#include <syslog.h>
void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);
#include <stdarg.h>
void vsyslog(int priority, const char *format, va_list ap);
glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):
vsyslog(): _BSD_SOURCE
説明
closelog() はシステムのログ記録用プログラム(システムロガー syslogd(8)) ヘの接続を終了する。 closelog()
は必須ではない。
openlog() はログを出力しようとしているプログラムからログ記録用 プログラム (system logger) への 接続を開始
する。 ident で指定した文字列は各メッセージの前に付与される。 通常は ident にはプログラム名が設定される。
ident が NULL の場合、プログラムが ident として使用される (POSIX.1-2008 では ident が NULL の場合の動作は
規定されていない)。
option 引き数は、 openlog() の動作とその後の syslog() の呼び 出しを制御するフラグを指定する。 facility 引
き数は、後で syslog() を呼び出す際に facility が指定されなかった場合に使用される デフォルト値 を決定す
る。 option と facility については後述する。 openlog() は必須ではなく、必要に応じて syslog() から呼び出さ
れる。 syslog() が呼び出した場合、 ident のデフォルト値は NULL になる。
syslog() はログメッセージを出力し、 syslogd(8) がそのメッセージを記録する。 priority 引き数は facility
と level との組合せで指定する。 facility と level の取りうる値は後述する。 残りの format 引き数は
printf(3) と似たスタイルの書式とその書式に与える値である。 format 中の2文字 %m はその時点での errno に関
連するエラーメッセージ文字列 (strerror) によって置き換えられる。 必要な場合は末尾に改行が加えられる。
vsyslog() 関数は syslog() と同じ機能を持つが、可変引き数リストを指定することができる点が異なる。 指定さ
れた引き数は、 stdarg(3) 可変引き数リストマクロを用いて取得される。
以下のサブセクションでは、 option と facility と priority の値を設定するのに使用されるパラメーターを説明
する。
option
下記の値を OR したものが openlog() の option 引き数になる:
LOG_CONS エラーがあれば、システムロガーに送る一方でシステムコンソールにも直接書く。
LOG_NDELAY ログ記録用プログラムとの接続を即座に開始する (通常は、最初のメッセージが記録される時に接続
を開く)。
LOG_NOWAIT メッセージを記録する際に生成される子プロセスの終了を待たない。 (GNU C ライブラリは子プロセ
スを生成しない。 したがって、このオプションは Linux では無効である。)
LOG_ODELAY LOG_NDELAY の反対。 syslog() が呼ばれるまで、接続の開始を行わない。 (このオプションはデ
フォルトであり、特に指定する必要はない。)
LOG_PERROR stderr にも出力する。 (POSIX.1-2001 と POSIX.1-2008 では定義されていない)
LOG_PID 個々のメッセージに PID を含める。
facility
facility 引き数はメッセージに記録されるプログラムのタイプを指定するために使われる。 これによって異なるタ
イプのプログラムからのメッセージは異なる扱いを するように設定ファイル( syslog.conf(5)) に定義できる。
LOG_AUTH セキュリティ/認証 メッセージ
LOG_AUTHPRIV セキュリティ/認証 メッセージ (プライベート)
LOG_CRON クロックデーモン (cron と at)
LOG_DAEMON 特定の facility 値を持たないシステムデーモン
LOG_FTP ftp デーモン
LOG_KERN カーネルメッセージ (ユーザープロセスから生成することはできない)
LOG_LOCAL0 から LOG_LOCAL7
ローカルな使用のためにリザーブされている
LOG_LPR ラインプリンタサブシステム
LOG_MAIL メールサブシステム
LOG_NEWS USENET ニュースサブシステム
LOG_SYSLOG syslogd(8) によって内部的に発行されるメッセージ
LOG_USER (デフォルト)
一般的なユーザーレベルメッセージ
LOG_UUCP UUCPサブシステム
level
これはメッセージの優先度を指定する。 優先度の高いものから低いものの順で下記する。
LOG_EMERG システムが使用不可
LOG_ALERT 直ちに行動を起こさなければならない
LOG_CRIT 危険な状態
LOG_ERR エラーの状態
LOG_WARNING ワーニングの状態
LOG_NOTICE 通常だが重要な状態
LOG_INFO インフォメーションメッセージ
LOG_DEBUG デバッグレベルのメッセージ
setlogmask(3) 関数を使用して、 指定されたレベルのメッセージだけを記録するように 制限することができる。
準拠
openlog(), closelog(), syslog() は SUSv2, POSIX.1-2001, POSIX.1-2008 で規定されている (但し vsyslog() は
除く)。 POSIX.1-2001 では facility として LOG_USER と LOG_LOCAL* の値 が規定されているだけである。 しかし
ながら、 LOG_AUTHPRIV と LOG_FTP という例外はあるが、 それ以外の facility の値は多くの UNIX システムで使
われている。 option の値の LOG_PERROR の値は、 POSIX.1-2001 と POSIX.1-2008 では規定されていないが、 UNIX
の多くのバージョンで使用可能である。
注意
openlog() 呼び出しの ident 引き数は、値がそのまま保持されていることを前提にしている。 それゆえ、 ident
で指定された文字列が変更されると、 syslog() は変更された文字列の追加するだろうし、 指定された文字列が存
在しなくなった場合、結果は未定義である。 最も移植性がある方法は、文字列定数を使用することである。
ユーザーから与えられたデータを format として渡してはならない。 代わりに以下を使うこと。
syslog(priority, "%s", string);
関連項目
logger(1), setlogmask(3), syslog.conf(5), syslogd(8)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告
に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
Linux 2012-08-17 SYSLOG(3)