日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
SYSLOG(3) FreeBSD ライブラリ関数マニュアル SYSLOG(3)
名称
syslog, vsyslog, openlog, closelog, setlogmask -- システムログを制御する
ライブラリ
標準 C ライブラリ (libc, -lc)
書式
#include <syslog.h>
void
syslog(int priority, const char *message, ...);
void
openlog(const char *ident, int logopt, int facility);
void
closelog(void);
int
setlogmask(int maskpri);
#include <syslog.h>
#include <stdarg.h>
void
vsyslog(int priority, const char *message, va_list args);
解説
syslog() 関数は、message (メッセージ) をシステムメッセージロガーに書き込
みます。次に、メッセージは、システムコンソール、ログファイル、ログインさ
れたユーザに書き込まれるか、または必要に応じて、他のマシンに転送されま
す。(syslogd(8) を参照してください。)
メッセージは、`%m' が、現在のエラーメッセージによって置き換えられることを
除いて、printf(3) 形式の文字列と同一です。(グローバル変数 errno によって
示されるように。(strerror(3) を参照してください。) 後続する改行は、何も存
在しないんら、追加されます。
vsyslog() 関数は、引数が、既に stdarg(3) の可変長引数機能を使用して捕獲さ
れている代替の形式です。
メッセージは、priority (優先度) でタグ付けられます。優先度は、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 をログ記録します: デーモン
のインスタンス化を識別するために役に立ちます。FreeBSD にお
いて、このオプションは、デフォルトで有効です。
facility 引数は、エンコードされた明示的な機能がない、すべてのメッセージに
割り当てられるデフォルトの機能をエンコードします:
LOG_AUTH 認証システム: login(1), su(1), getty(8), など。
LOG_AUTHPRIV LOG_AUTH と同様ですが、選ばれた個人だけのために読み込み可能
なファイルにログ記録します。
LOG_CONSOLE メッセージは、カーネルのコンソール出力ドライバによって
/dev/console に書き込まれます。
LOG_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_NTP ネットワークタイム (時間) プロトコルシステム。
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 を含むすべての優先度までのマスクは、マクロ
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_ERR|LOG_LOCAL2, "foobar error: %m");
関連項目
logger(1), syslogd(8)
歴史
これらの関数は、4.2BSD で登場しました。
バグ
`%s' を使用しない形式として、ユーザ供給されたデータで文字列を決して渡しま
せん。攻撃者は、利用者のスタックを mangle する文字列に形式指示子に置くこ
とができ、起こり得るセキュリティホールに導きます。これは、たとえ文字列
が、snprintf() のような関数を使用して構築されたとしても、当てはまります、
結果の文字列として、まだ、syslog() によって後の補間のためのユーザ供給され
た変換指示子を含んでいます。
常に、適切な安全な慣用句 (idiom) を使用します:
syslog(priority, "%s", string);
FreeBSD 13.2 November 25, 2018 FreeBSD 13.2