2012-03-15 1 views
2

私は、PHPがエラーログに軽度で致命的なエラーを送信しても、私はまず、error_reporting(0);を使用してすべてのエラーメッセージを抑止することができると考えましたが、それは本当に理想的ではありません。私もtry-catchの中にすべてを入れることができるのは分かっていますが、それは本当に理想的ではありません。致命的なエラー(例:register_shutdown_function())のような通常のエラーに対しては、自動化されたものはありますか?ユーザが見ることができるPHPエラーメッセージは表示しませんが、エラーログメッセージは表示されません

致命的なエラーといえば、SO answerのようにregister_shutdown_function()を使用してキャッチしようとしました。私がこのようにしたとき、致命的なエラーは捕まえましたが、error_get_last();は常に空です。私はまた、エラーメッセージをキャッチするためにdebug_backtrace();を使用しようとしました。それはです私は致命的なエラーが欲しい情報が含まれていますが、私は避けようとしている非常に状況、ユーザーにその情報を実際に印刷の望ましくない副作用を持っているように見えます。

私がここでやろうとしていることを実行する方法は他にありますか?上記で説明した方法を使用して、エラーメッセージをコンソールに記録します。ありがとうございました。

+0

存在する設定については、マニュアルを参照してください:http://php.net/manual/en/errorfunc.configuration.php – hakre

答えて

4

display_errors=0log_errors=1をphp.iniに設定してください。

これは、任意の本番サーバーのデフォルトにする必要があります。

+0

ああ、そうです、私は管理者と話をしなければなりませんそのアプリケーションサーバーを立ち上げ、なぜphp.iniがプロダクションでそのように設定されていないのかを尋ねます。ありがとうございました! – keybored

関連する問題