.\" Copyright (c) 1985, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)syslog.3 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" %FreeBSD: src/lib/libc/gen/syslog.3,v 1.9.2.9 2001/12/14 18:33:51 ru Exp % .\" .Dd June 4, 1993 .Dt SYSLOG 3 .Os .Sh 名称 .Nm syslog , .Nm vsyslog , .Nm openlog , .Nm closelog , .Nm setlogmask .Nd システムログの制御 .Sh ライブラリ .Lb libc .Sh 書式 .In syslog.h .In varargs.h .Ft void .Fn syslog "int priority" "const char *message" "..." .Ft void .Fn vsyslog "int priority" "const char *message" "va_list args" .Ft void .Fn openlog "const char *ident" "int logopt" "int facility" .Ft void .Fn closelog void .Ft int .Fn setlogmask "int maskpri" .Sh 解説 .Fn syslog 関数は、システムのメッセージロガーにメッセージを書込みます。 そのメッセージは、次に状況に応じてシステムコンソール、ログファイル、 ログインしたユーザなどに書込まれたり、他のマシンに転送されます ( .Xr syslogd 8 参照) 。 .Pp メッセージは、 .Ql %m が現在のエラーメッセージにより置き換えられることを除けば、 .Xr printf 3 フォーマットストリングと同じものになります (グローバル変数 errno によって示されるものと同じ。 .Xr strerror 3 参照) 。 何もない場合は、末尾に改行が追加されます。 .Pp .Fn vsyslog 関数は、 .Xr stdarg 3 の可変長引数機能を使ってすでに引数が キャプチャされている場合の代替形式です。 .Pp メッセージには優先順位 ( .Fa priority ) のタグが付けられます。優先順位は、 .Fa facility と .Em level にコード化されます。 .Fa facility は、メッセージを作成する システムの一部を記述します。 .Em level は、順番になった (高い方から低い方へ) 次のような一覧から選択します: .Bl -tag -width LOG_AUTHPRIV .It Dv LOG_EMERG パニック状態。これは、通常は全ユーザに送信されます。 .It Dv LOG_ALERT 壊れたシステムデータベースのような、直ちに是正すべき状態。 .It Dv LOG_CRIT 危険な状態、例えばハードデバイスエラーなど。 .It Dv LOG_ERR エラー。 .It Dv LOG_WARNING 警告メッセージ。 .It Dv LOG_NOTICE エラー状態ではないが、特別に処理する必要性が考えられる状態。 .It Dv LOG_INFO インフォメーションメッセージ。 .It Dv LOG_DEBUG 通常はプログラムのデバッグの際にのみ使う情報が入った メッセージ。 .El .Pp .Fn openlog 関数は、 .Fn syslog および .Fn vsyslog により送られたメッセージに 対して、より特殊な処理を施すためのものです。パラメータ .Fa ident は、すべての メッセージの前に付加されるストリングです。 .Fa logopt 引数は、ログ作成オプション を指定するビットフィールドで、次に示す値の 1 つ以上を .Tn OR 操作することによって作成されます: .Bl -tag -width LOG_AUTHPRIV .It Dv LOG_CONS .Fn syslog がメッセージを .Xr syslogd 8 へ渡せない場合、 コンソール .Pq Dq Pa /dev/console にメッセージを書き込むことを試みます。 .It Dv LOG_NDELAY .Xr syslogd 8 への接続を直ちに開きます。通常は、最初の メッセージがログに書込まれるまでは開く操作を遅らせます。これは、 ファイル記述子を割り振る順番を管理する必要があるプログラムでは役に 立ちます。 .It Dv LOG_PERROR メッセージを、システムログと同時に標準エラー出力にも書込みます。 .It Dv LOG_PID 各メッセージとともにプロセス ID をログします。デーモンのインスタンス化を識別するために役に立ちます。 .El .Pp .Fa facility パラメータは、明示的なファシリティが コード化されていないすべてのメッセージに割り当てるデフォルトファシリティを コード化します: .Bl -tag -width LOG_AUTHPRIV .It Dv LOG_AUTH 権限付与システム: .Xr login 1 、 .Xr su 1 、 .Xr getty 8 、など。 .It Dv LOG_AUTHPRIV .Dv LOG_AUTH と同じですが、限定された個人だけが読める ファイルにログします。 .It Dv LOG_CONSOLE カーネルコンソール出力ドライバが、メッセージを .Pa /dev/console に書き込みます。 .It Dv LOG_CRON cron デーモン: .Xr cron 8 。 .It Dv LOG_DAEMON .Xr routed 8 のような、他のファシリティでは明示的に 用意されていないシステムデーモン。 .It Dv LOG_FTP ファイル転送プロトコルデーモン: .Xr ftpd 8 、 .Xr tftpd 8 。 .It Dv LOG_KERN カーネルにより生成されるメッセージ。これらは、どんな ユーザプロセスによっても生成できません。 .It Dv LOG_LPR ラインプリンターのスプーリングシステム: .Xr lpr 1 、 .Xr lpc 8 、 .Xr lpd 8 、など。 .It Dv LOG_MAIL メールシステム。 .It Dv LOG_NEWS ネットワークニュースシステム。 .It Dv LOG_SECURITY セキュリティサブシステムです。 例えば .Xr ipfw 4 です。 .It Dv LOG_SYSLOG .Xr syslogd 8 により内部的に生成されたメッセージ。 .It Dv LOG_USER 任意のユーザプロセスにより生成されたメッセージ。何も 指定されていない場合は、これはデフォルトのファシリティ識別子になります。 .It Dv LOG_UUCP uucp システム。 .It Dv LOG_LOCAL0 ローカルの使用のために予約。 .Dv LOG_LOCAL1 から .Dv LOG_LOCAL7 までについても同じ。 .El .Pp .Fn closelog 関数は、ログファイルを閉じるために使うことができます。 .Pp .Fn setlogmask 関数は、ログ優先順位マスクを .Fa maskpri に設定し、以前のマスクを返します。 .Fa maskpri に設定されていない優先順位を持った .Fn syslog への呼び出しは拒絶されます。個別の優先順位 .Fa pri のためのマスクは、マクロ .Fn LOG_MASK pri によって計算されます。 .Fa toppri 自体を含む toppri までのすべての優先順位についてのマスクは、マクロ .Fn LOG_UPTO toppri によって与えられます。 デフォルトでは、すべての優先順位をログすることを許可します。 .Sh 戻り値 ルーチン .Fn closelog 、 .Fn openlog 、 .Fn syslog 、および .Fn vsyslog は、値を返しません。 .Pp ルーチン .Fn setlogmask は、常に前のログマスクレベルを返します。 .Sh 例 .Bd -literal -offset indent syslog(LOG_ALERT, "who: internal error 23"); openlog("ftpd", LOG_PID | LOG_NDELAY, LOG_FTP); setlogmask(LOG_UPTO(LOG_ERR)); syslog(LOG_INFO, "Connection from host %d", CallingHost); syslog(LOG_INFO|LOG_LOCAL2, "foobar error: %m"); .Ed .Sh 関連項目 .Xr logger 1 , .Xr syslogd 8 .Sh 歴史 これらの関数は .Bx 4.2 に現れました。