SYSLOG

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index JM Home Page
 

名前

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);

void vsyslog(int priority, const char *format, va_list ap);

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

vsyslog():
    Since glibc 2.19:
        _DEFAULT_SOURCE
    Glibc 2.19 and earlier:
        _BSD_SOURCE  

説明

 

openlog()

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() と vsyslog()

syslog() generates a log message, which will be distributed by syslogd(8).

The priority argument is formed by ORing together a facility value and a level value (described below). If no facility value is ORed into priority, then the default value set by openlog() is used, or, if there was no preceding openlog() call, a default of LOG_USER is employed.

The remaining arguments are a format, as in printf(3), and any arguments required by the format, except that the two-character sequence %m will be replaced by the error message string strerror(errno). The format string need not include a terminating newline character.

vsyslog() 関数は syslog() と同じ機能を持つが、可変引数リストを指定することができる点が異なる。 指定された引数は、 stdarg(3) 可変引数リストマクロを用いて取得される。  

closelog()

closelog() は、システムロガーに書き込むのに使用されるファイルディスクリプターをクローズする。 closelog() の使用は必須ではない。  

Values for option

The option argument to openlog() is a bit mask constructed by ORing together any of the following values:
LOG_CONS
エラーがあれば、システムロガーに送る一方でシステムコンソールにも直接書く。
LOG_NDELAY
Open the connection immediately (normally, the connection is opened when the first message is logged). This may be useful, for example, if a subsequent chroot(2) would make the pathname used internally by the logging facility unreachable.
LOG_NOWAIT
メッセージを記録する際に生成される子プロセスの終了を待たない。 (GNU C ライブラリは子プロセスを生成しない。 したがって、このオプションは Linux では無効である。)
LOG_ODELAY
LOG_NDELAY の反対。 syslog() が呼ばれるまで、接続の開始を行わない。 (このオプションはデフォルトであり、特に指定する必要はない。)
LOG_PERROR
メッセージを stderr にも出力する。 (POSIX.1-2001 にも POSIX.1-2008 にも定義されていない)
LOG_PID
個々のメッセージに呼び出し元の PID を含める。
 

Values for 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サブシステム
 

Values for level

これはメッセージの優先度を指定する。 優先度の高いものから低いものの順で下記する。
LOG_EMERG
システムが使用不可
LOG_ALERT
直ちに行動を起こさなければならない
LOG_CRIT
危険な状態
LOG_ERR
エラーの状態
LOG_WARNING
ワーニングの状態
LOG_NOTICE
通常だが重要な状態
LOG_INFO
インフォメーションメッセージ
LOG_DEBUG
デバッグレベルのメッセージ

setlogmask(3) 関数を使用して、 指定されたレベルのメッセージだけを記録するように 制限することができる。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
openlog(), closelog() Thread safety MT-Safe
syslog(), vsyslog() Thread safety MT-Safe env locale
 

準拠

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);  

関連項目


 journalctl(1), logger(1), setlogmask(3), syslog.conf(5), syslogd(8)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

メッセージ   syslog   ロガー   規定   facility   記録   デーモン   サブシステム   レベル   closelog   openlog   vsyslog   マクロ   接続   通常   デフォルト値   必須   message   argument   ORing   together   default   used   arguments   format

Linux マニュアル 一覧

関連するコマンド・関数

openlog.3   syslog.3   vsyslog.3   rpc.rwalld.8   rwalld.8   sysklogd.8
 

Index

名前
書式
説明
openlog()
syslog() と vsyslog()
closelog()
Values for option
Values for facility
Values for level
属性
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:09 GMT, October 11, 2026