名 前
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 で は 定 義 さ れ て い な い ) 個 々 の メ ッ セ ー ジ に PID を 含 め る 。 facility
|