に設定されているerror_reportingの際に致命的なエラーをキャッチしていない - 私が正しく運用モード中にエラーを記録ロガーを持ってYii2はindex.phpの中で生産モードにYii2を設定する場合
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod')
、適切なエラーを出力しますユーザーページにメッセージを表示するだけでなく、これらのエラーメッセージを通知に表示します(不必要にページを強制終了します)。
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);
しかし、これは、彼らが記録されないように、すべてのエラーをキャッチからYii2を防ぎ、かつによって許可されたすべてのエラーが発生した場合に空白ページをレンダリング - だから、私はindex.phpの中でerror_reportingの設定しましたerror_reporting。それは、ページを殺すことから通知を防ぐが、私がerror_reporting()を使用するとロギングが機能しなくなる
これを行う適切な方法はありますか?以前誰かがこの問題を抱えていましたか?すべての試行されたソリューションに感謝します。
エラーログの設定 -
$log['targets'][] = [
'class' => 'understeam\slack\LogTarget',
'exportInterval' => 1,
'levels' => ['error', 'warning'],
'except' => [
'yii\i18n*',
'yii\web\HttpException:404',
'yii\web\HttpException:403',
'yii\web\ForbiddenHttpException',
'yii\web\NotAcceptableHttpException',
'yii\base\InvalidRouteException'
],
];
上記は、ベンダーのパッケージ "understeam/yii2-たるみ" を使用している: "〜0.3"
ロガーについてもっと教えていただけますか? set_error_handler()を使用していますか?これは独自のロガーかyii2内部ロガーですか?私は似たような問題を抱えていますが、これが役立つかもしれません。http://stackoverflow.com/questions/35522669/yii2-use-error-handler-only-for-fatal-errors-or-specify-handled-error-types/35792347 – cronfy
申し訳ありませんが、私はそれを含めませんでした。 私はそれを私の質問の最後に追加しました。 –
さて、yii \ web \ ErrorHandlerを独自の実装に置き換えるか、独自の関数を登録するためにset_error_handler()を使用する必要があります.Yii :: warning()がログにメッセージを送信します。 – cronfy