Manpages

名 前

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 が 指 定 さ れ な か っ た 場 合 に 使 用 さ れ る デ フ ォ ル ト 値 を 決 定 す る 。 optionfacility に つ い て は 後 述 す る 。 openlog() は 必 須 で は な く 、 必 要 に 応 じ て syslog() か ら 呼 び 出 さ れ る 。 syslog() が 呼 び 出 し た 場 合 、 ident の デ フ ォ ル ト 値 は NULL に な る 。

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

vsyslog() 関 数 は syslog() と 同 じ 機 能 を 持 つ が 、 可 変 引 き 数 リ ス ト を 指 定 す る こ と が で き る 点 が 異 な る 。 指 定 さ れ た 引 き 数 は 、 stdarg(3) 可 変 引 き 数 リ ス ト マ ク ロ を 用 い て 取 得 さ れ る 。 以 下 の サ ブ セ ク シ ョ ン で は 、 optionfacilitypriority の 値 を 設 定 す る の に 使 用 さ れ る パ ラ メ ー タ ー を 説 明 す る 。

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_USERLOG_LOCAL* の 値 が 規 定 さ れ て い る だ け で あ る 。 し か し な が ら 、 LOG_AUTHPRIVLOG_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/ に 書 か れ て い る 。