#include #include void syslog(int priority, const char *message, ...); void vsyslog(int priority, const char *message, va_list args); void openlog(const char *ident, int logopt, int facility); void closelog(void); int setlogmask(int maskpri);
● openlog() ident syslog の TAG を指定します。アプリケーション名を入れるのが普通でしょう。 logopt ログに関するオプションを指定します。詳しくは 表4 に挙げます。 表4 logopt引数一覧 値 動作 LOG_CONS syslogd(8) を経由できない場合、/dev/console に書き出します。 LOG_NDELAY 通常は実際にログが来るまで syslogd(8) と接続しませんが、このオプションを指定すると直ちに接続します。 LOG_PERROR syslog と同様に、標準エラー出力にも出力する。 LOG_PID 各メッセージに PID を付加する。 ● setlogmask() maskpri 制限するログレベルを記述します。 LOG_MASK(pri) では priority が pri のものだけを制限し、LOG_UPTO(toppri) では priority が toppri 以下のものをすべて制限します。 返り値 呼ぶ前に制限されていたログレベルが返ります。
● openlog()
#include <syslog.h> int main() { /* * newsyslog[PID]: logfile turned over (sample) * というログを user.notice で書いてみる */ openlog("newsyslog", LOG_CONS | LOG_PID, LOG_USER); syslog(LOG_NOTICE, "logfile turned over (sample)"); closelog(); return 0; }