Outils pour utilisateurs

Outils du site


devweb:laravel:log (lu 29019 fois)

Logs et Erreurs

Pour avoir un peu plus d’infos sur les erreurs et être avertis par mail en prod, j’ai remplacé un bout de code dans le fichier app/start/global.php

App::error(function(Exception $exception, $code)
{
	Log::error($exception);
});

par

App::error(function(Exception $exception, $code)
{
        Log::error($exception);
        Log::error(print_r($_SERVER,true));
        if (App::environment('prod')){
                Mail::send(['text'=>'emails.rapport'], ['contenu'=>$exception."\n".print_r($_SERVER,true)], function($m)
                {
                    $m->to('bug@mail.com')->subject('[edmc73] BUG sur site');
                });
        }
});

Il faut aussi penser à faire une mini vue que nous mettrons dans app/views/emails/rapport.php avec ce code

<?=$contenu?>

Sur laravel 5

Pour recevoir un mail lorsqu’une exception est déclenché, modifiez la méthode report du fichier app/Exceptions/Handler.php

    public function report(Exception $exception)
    {
        if ($this->shouldReport($exception)) {
 
            $debugSetting = config('app.debug');
 
            config(['app.debug'=> true]);
            if (ExceptionHandler::isHttpException($exception)) {
                $content = ExceptionHandler::toIlluminateResponse(ExceptionHandler::renderHttpException($exception), $exception);
            } else {
                $content = ExceptionHandler::toIlluminateResponse(ExceptionHandler::convertExceptionToResponse($exception), $exception);
            }
 
            config(['app.debug'=> $debugSetting]);
 
            $data['content'] = (!isset($content->original)) ? $exception->getMessage() : $content->original;
 
            \Mail::send(
                ['html' => 'emails.exception'],
                ['content' => $data['content']],
                function ($m) {
                    $m->from(['support@domaine.com']);
                    $m->to(['moi@domaine.com']);
                    $m->subject('Crash Report : '.config('app.name'));
                }
            );
        }
        parent::report($exception);
    }

Créez une petite vue resources/views/emails/exception.blade.php

{!! $content !!}
devweb/laravel/log.txt · Dernière modification: 20-02-2017 10:27 de edmc73