3

エラー処理のドキュメントに問題があるだけかもしれませんが、私が念頭に置いているのは、いくつかの異なるシナリオです。

  1. PHP が典型的なエラーをスローするとき、私はデフォルトのエラー ログを保持したいのですが、エラーの種類/重大度に基づいて別のエラー ログも保持したいと考えています (致命的なエラーのみのログであるため、過去の数百万のマイナー エラーをスキャンする必要はありません)。 、まだ一般的な山に記録されているマイナーなエラーがあります)。

  2. Web アプリ / プラットフォーム (Wordpress や MediaWiki など) の場合、PHP エラー (Web アプリによってスローされたものだけでなく、すべて) を Web アプリのエラー ログに保存します。(これはほぼ確実に重大度に基づいています。考え方としては、webapp エラー ログに移動し、PHP の致命的なエラーが混在していることを確認して、そのドメインのエラー ログなどを追跡することを避けることです)

  3. また、Web アプリケーションによって特定のタイプのエラーがスローされると、一般的なエラー ログと独自のカスタム ログに移動します (どちらか一方を見たことはありますが、両方は見たことはありません)。

したがって、根本的な問題は次のとおりです。デフォルトのエラーログを失う/上書きすることなく、カスタムエラーログを作成するにはどうすればよいですか?

また、ほとんどの場合、このレベルのエラーと例外は交換可能であると想定するのはかなり安全ですか、それとも同様の例外処理の目標のために他の手順を実行する必要がありますか?

4

2 に答える 2

4

独自のエラー ハンドラーを設定し、トリガーされたエラーを通常どおり php に処理させることができます。

http://se.php.net/manual/en/function.set-error-handler.php

set_error_handler(function($errno, $errstr, $errfile, $errline) {
  // do what you want  
  return false; // returning false makes PHP execute its own error handler as well
});
于 2012-05-05T13:42:46.543 に答える