PHPでエラーログを出力する
アプリケーション開発ではエラー発生の原因等を調査するために必要な情報をログとして出力し、サーバ上に保存する必要があります。
PHPではerror_log関数という標準の機能を使用してログを出力することができます。
以下は例外発生時に年月日日時とエラーメッセージを専用のログファイルに保存しています。
<?php
try {
errorTest();
} catch (Exception $e) {
$destination = '/var/www/logs/error.log';
error_log(date('Y-m-d H:i:s') . ' : ' . $e->getMessage() . "\n", 3, $destination);
}
function errorTest()
{
throw new ErrorException('エラー発生');
}
error_log関数は第一引数にログに書き込むメッセージ、第二引数にはエラーメッセージの記録方法(ログファイルに書き込む場合は3でOK)、第三引数にログファイルの絶対パスを指定します。
/var/www/logs/error.log
2023-01-29 06:25:14 : エラー発生
任意の場所でのログ出力以外にも、未処理の例外をハンドリングする set_error_handler やプログラム停止時に実行される register_shutdown_function と組み合わせることで、発生したエラーを確実にログに保存することが可能となります。
set_error_handler等の詳細は以下を参照ください。