syslog

(PHP 3, PHP 4, PHP 5)

syslog -- システムログのメッセージを生成する

説明

bool syslog ( int priority, string message )

syslog()はシステムログが出力するログメッセージを 生成します。priorityは、容易さ(facility)と レベル(level)の組み合わせで、その値については、次節で説明します。 残りの引数は送信するメッセージです。ただし、文字%m は、errnoの値に 対応するエラーメッセージ文字列(strerror)に置換されます。

表 1. syslog()の優先順位 (降順)

定数説明
LOG_EMERGシステムは使用不可
LOG_ALERTアクションを直ちにおこす必要がある
LOG_CRIT致命的な条件
LOG_ERRエラーを発生する条件
LOG_WARNING警告を発生する条件
LOG_NOTICE通常の動作だが、特徴的な条件
LOG_INFO情報を与えるメッセージ
LOG_DEBUGデバッグ用のメッセージ

例 1. syslog()の使用例

<?php
define_syslog_variables
();
// syslogをオープンし、プロセスIDをインクルードし、標準エラー出力にも
// ログを出力します。そして、ユーザ定義のログ記録機構を使用します。
openlog("myScripLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// 何らかのコード

if (authorized_client()) {
    
// 何かをする
} else {
    
// クライアントは未認証!
    // ログを記録する
    
$access = date("Y/m/d H:i:s");
    
syslog(LOG_WARNING, "Unauthorized client: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

closelog();
?>
ユーザ定義のログハンドラの設定に関する情報については、Unix マニュアルの syslog.conf(5) を参照ください。 syslog の facility と option に関するより詳細な情報は、 Unix マシンの syslog(3) にあります。

Windows NT では、syslog サービスはイベントログを使用してエミュレートされます。

注意: LOG_LOCAL0 から LOG_LOCAL7 までについては、openlog()facility パラメータは Windows 環境では使用できません。

define_syslog_variables(), openlog(), closelog() も参照ください。