SYSLOG
Section: Linux Programmer's Manual (3)
Updated:  2017-09-15
Index
JM Home Page
roff 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/ に書かれている。
 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: 16:46:43 GMT, November 24, 2023