̃Gg[͂ĂȃubN}[Nɒlj

PHP :: error_log() 関数を利用したロギング



ログの出力先をファイルにする時、排他ロックを掛けておかないとファイルを破損する場合があります。
その為、通常は下記のように「ロック→書き込み→アンロック」というように書くと思います。
(pear::log などを使わない場合)

function outputLog($file_name, $message)
{
    $fp = fopen($file_name, "a");
    flock($fp, 2);
    fwrite($fp, $message);
    flock($fp, 3);
    fclose($fp);
}



次のように、error_log() 関数で代用してもっとシンプルに書くことができます。

error_log($message, 3, $file_name);



関数名が error_log だと気持ち悪いので、ラップする関数を作った方が良いでしょう。

function outputLog($file_name, $message)
{
    $message .= "\n";
    error_log($message, 3, $file_name);
}

※. $message の内容は $file_name で指定されたファイルに追加されます。明示的に指定しない限り、$message の 最後には改行文字は追加されません。




programming/php/etc/error_log.txt