Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable sentry for laravel on local environment

Is there any way to disable sentry for laravel 5 on local environnement? I have removed the SENTRY_DSN entry from my .env file and it seems to work but I am not sure it's the right way. Should I add some check about env in report function? Or is there any better way? App\Exceptions\Handler looks like this:

public function report(Exception $e)
{
    if ($this->shouldReport($e)) {
        app('sentry')->captureException($e);
    }
    parent::report($e);
}
like image 936
rap-2-h Avatar asked Jun 14 '16 13:06

rap-2-h


1 Answers

You can check if you are in production for both the report() and render() functions.

Here is an updated App\Exceptions\Handler file for example.

public function report(Exception $e)
{
    if (app()->environment('production') && $this->shouldReport($e)) {
        app('sentry')->captureException($e);
    }

    parent::report($e);
}

...

public function render($request, Exception $e)
{
    if ($e instanceof ModelNotFoundException) {
        $e = new NotFoundHttpException($e->getMessage(), $e);
    }

    if (app()->environment('production')) {
        return response()->view('errors.500', null, 500);
    }

    return parent::render($request, $e);
}

This way you still have whoops errors showing in local and a custom 500 error page for production.

like image 79
Pascal Meunier Avatar answered Sep 23 '22 17:09

Pascal Meunier