0

一般に、エラーはログなどです。しかし、プロダクションサーバーで注意が必要な重大なエラーはどうすればよいでしょうか。たとえば、あるプロセスで一連のORMモデルを削除していて、そのプロセスの途中でモデルを削除できなかった場合などです。できるだけ多くのオブジェクトを削除し、ユーザーに例外をスローしないようにしたいと考えています。また、開発者や管理者に重要なエラーが通知されるようにして、即座に修正することもできます。PHP運用サーバー上の重大なエラー通知を正しく処理する方法。

以前は、特定の状況下でエラーをメールで送信するスクリプトを追加しました。私が開発環境にいたのであれば、それは投げて例外になるでしょうが、プロダクションでは静かに死んでエラーをメールします。

特定の例外をハイライトする方法がいくつかありますが、より重要なので、開発者は行動を起こすことができますか?より一般的なソリューションを作成できますか? EG重要なエラー/例外がスローされた場合、これは常にプロダクションの管理者に電子メールで送信されます。それ以外の場合は通常の手順(ログなど)に従います。

おそらく解決策を提供するいくつかの素晴らしいパッケージがありますが、可能であればもっとネイティブなものを探しています。

答えて

0

htaccessファイルをサイトルートに次の行で配置することができます。

# PHP error handling for production servers 
php_flag display_startup_errors off 
php_flag display_errors off 
php_flag html_errors off 
php_flag log_errors on 
php_flag ignore_repeated_errors off 
php_flag ignore_repeated_source off 
php_flag report_memleaks on 
php_flag track_errors on 
php_value docref_root 0 
php_value docref_ext 0 
php_value error_log /home/path/public_html/domain/PHP_errors.log 
php_value error_reporting -1 
php_value log_errors_max_len 0 

公開アクセス可能な場所にerror_logを配置しないでください。

0

PSR-3は、この種の状況を処理するために定義されました。 Monologのような準拠のロギングインターフェイスを使用する場合は、各環境で異なるエラーレベルの処理方法を定義できます。おそらく、あなたが画面上のすべてを表示したい場合は、ライブ中にCRITICALより下のすべてを隠し、上記のすべてについてNagiosまたはPushoverアラートを送信します。

+0

本当にこれを正しく実行するには、他のプラグインやパッケージを入手する必要があります。 – Shane

+0

あなたは*する必要はありません*、あなたはあなたの仕事のトンを節約します。 –

関連する問題