Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       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  が指定されなかった場合に使用される
       デフォルト値を決定する。 optionfacility に指定できる値については後述する。

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

関連項目

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

この文書について

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