関数を使用set_error_handler
してカスタムエラーハンドラーを設定し、それを使って好きなことを行うことができます。
ベストプラクティスであるIMOは、ErrorException
エラーが発生したときにスローし、それを処理することですtry/catch
(注:処理では、エラーをミュートすることを意味するわけではありません)。例えば:
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
set_error_handler("exception_error_handler");
try {
//Some code that may produce error
} catch (ErrorException $e) {
$someLogger->log($e->getMessage());
}
ロガーの代わりに、要件を実装する独自のカスタムクラスがある場合があります。したがって、既存のソースのいずれかがニーズを満たしている場合はそれを使用し、そうでない場合は作成します。
注1:致命的なエラー(ロギングが頭に浮かぶ)に対して何かをしたい場合は、次を使用できます。register_shutdown_function
注2:見つけたクラス/プロジェクトは小さいとおっしゃいました。2つのことがあります。まず、LOCでコードがどれだけ優れているかを測定することはできません。第二に、エラーとはあまり関係がありません。
編集:
一般に、新しいプロジェクトを開発するときに、すべてを最初から再実装することは一般的ではなく、受け入れられません。一度独自のライブラリを構築してから、それらをプロジェクトで使用する必要があります。個人的には、ログ記録にKLoggerを使用しており、満足しています。