php エラーログ 出力設定

phpでプログラム実行後にエラーが出力されるが、

そのレベルは様々である。

エラーが出ても、デフォルトでは、画面上にエラーが表示され、

致命的なエラーでない限り、プログラムは最後まで実行される。

なので、エラー処理も重要になってくる。

以下、php.iniの設定

display_errors

初期設定ではONになっている。

これをOFFにすれば、画面上にエラーは表示されない。

本番環境ではそうなっているだろう。

error_reporting

デフォルトでは、E_ALLとなっている。

その設定項目の上に、Common Valuesなど改定あるので、参考にして設定するといい。

&や|は論理判定と同様、

E_ALL&E_NOTICEなら、全てのエラーの中でのnoticeとなる。

全てのエラーではなく、それぞれ設定したい場合は、

E_NOTICE | E_STRICT などと書く。

phpのファイルの中に、

これらの関数を使って設定することもできる。

ini_set(‘display_errors’,1);

error_reporting(E_ALL);

など書けばその設定になる。

参考

https://webukatu.com/wordpress/blog/37092/

https://maku77.github.io/php/settings/error-level.html

ちなみに、Laravelでは、config/logging.php内で設定されている。

この中の、levelはenvファイルのLOG_LEVELを読み込んでいるので、

デフォルトでは、

.envのLOG_LEVEL=debugとなっているが、これを変更すればいい。

debugはほぼ全てで、緊急度の低い方から、

info,notice,warning,error,critical,alert,emergencyとなっている。