スポンサーリンク

SYSLOG(3) FreeBSD ライブラリ関数マニュアル SYSLOG(3)

名称

syslog, vsyslog, openlog, closelog, setlogmask − システムログの制御

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <syslog.h>
#include <varargs.h>

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

解説

syslog() 関数は、システムのメッセージロガーにメッセージを書込みます。その メッセージは、次に状況に応じてシステムコンソール、ログファイル、ログイン したユーザなどに書込まれたり、他のマシンに転送されます ( syslogd(8) 参照) 。

メッセージは、 ‘%m’ が現在のエラーメッセージにより置き換えられることを除 けば、 printf(3) フォーマットストリングと同じものになります (グローバル変 数 errno によって示されるものと同じ。 strerror(3) 参照) 。何もない場合 は、末尾に改行が追加されます。

vsyslog() 関数は、 stdarg(3) の可変長引数機能を使ってすでに引数がキャプ チャされている場合の代替形式です。

メッセージには優先順位 ( priority ) のタグが付けられます。優先順位は、 facilitylevel にコード化されます。 facility は、メッセージを作成する システムの一部を記述します。 level は、順番になった (高い方から低い方へ) 次のような一覧から選択します:

       LOG_EMERG

パニック状態。これは、通常は全ユーザに送信されます。

LOG_ALERT
壊れたシステムデータベースのような、直ちに是正すべき状態。

LOG_CRIT
危険な状態、例えばハードデバイスエラーなど。

LOG_ERR
エラー。

LOG_WARNING
警告メッセージ。

LOG_NOTICE
エラー状態ではないが、特別に処理する必要性が考えられる状 態。

LOG_INFO
インフォメーションメッセージ。

LOG_DEBUG
通常はプログラムのデバッグの際にのみ使う情報が入ったメッ セージ。

openlog() 関数は、 syslog() および vsyslog() により送られたメッセージに対 して、より特殊な処理を施すためのものです。パラメータ ident は、すべての メッセージの前に付加されるストリングです。 logopt 引数は、ログ作成オプ ションを指定するビットフィールドで、次に示す値の 1 つ以上を OR 操作するこ とによって作成されます:

LOG_CONS
syslog
() がメッセージを syslogd(8) へ渡せない場合、コンソー ル (‘‘/dev/console’’) にメッセージを書き込むことを試みま す。

LOG_NDELAY
syslogd(8) への接続を直ちに開きます。通常は、最初のメッセー ジがログに書込まれるまでは開く操作を遅らせます。これは、 ファイル記述子を割り振る順番を管理する必要があるプログラム では役に立ちます。

LOG_PERROR
メッセージを、システムログと同時に標準エラー出力にも書込み ます。

LOG_PID
各メッセージとともにプロセス ID をログします。デーモンのイ ンスタンス化を識別するために役に立ちます。

facility パラメータは、明示的なファシリティがコード化されていないすべての メッセージに割り当てるデフォルトファシリティをコード化します:

LOG_AUTH
権限付与システム: login(1)su(1)getty(8) 、など。

LOG_AUTHPRIV
LOG_AUTH と同じですが、限定された個人だけが読めるファイルに ログします。

LOG_CONSOLE
カーネルコンソール出力ドライバが、メッセージを /dev/console に書き込みます。

LOG_CRON
cron デーモン: cron(8)

LOG_DAEMON
routed(8) のような、他のファシリティでは明示的に用意されて いないシステムデーモン。

LOG_FTP
ファイル転送プロトコルデーモン: ftpd(8)tftpd(8)

LOG_KERN
カーネルにより生成されるメッセージ。これらは、どんなユーザ プロセスによっても生成できません。

LOG_LPR
ラインプリンターのスプーリングシステム: lpr(1)lpc(8)lpd(8) 、など。

LOG_MAIL
メールシステム。

LOG_NEWS
ネットワークニュースシステム。

LOG_SECURITY
セキュリティサブシステムです。例えば ipfw(4) です。

LOG_SYSLOG
syslogd(8) により内部的に生成されたメッセージ。

LOG_USER
任意のユーザプロセスにより生成されたメッセージ。何も指定さ れていない場合は、これはデフォルトのファシリティ識別子にな ります。

LOG_UUCP
uucp システム。

LOG_LOCAL0
ローカルの使用のために予約。 LOG_LOCAL1 から LOG_LOCAL7 ま でについても同じ。

closelog() 関数は、ログファイルを閉じるために使うことができます。

setlogmask() 関数は、ログ優先順位マスクを maskpri に設定し、以前のマスク を返します。 maskpri に設定されていない優先順位を持った syslog() への呼び 出しは拒絶されます。個別の優先順位 pri のためのマスクは、マクロ LOG_MASK(pri) によって計算されます。 toppri 自体を含む toppri までのすべ ての優先順位についてのマスクは、マクロ LOG_UPTO(toppri) によって与えられ ます。デフォルトでは、すべての優先順位をログすることを許可します。

戻り値

ルーチン closelog() 、 openlog() 、 syslog() 、および vsyslog() は、値を 返しません。

ルーチン setlogmask() は、常に前のログマスクレベルを返します。

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

関連項目

logger(1), syslogd(8)

歴史

これらの関数は 4.2BSD に現れました。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク