Laravel 5.x

Laravel is supported using a native package: sentry-laravel.

This guide is for Laravel 5.x. We also provide instructions for the latest Laravel as well as Lumen-specific instructions.

Install

Install the sentry/sentry-laravel package:

Copied
composer require "sentry/sentry-laravel:^2.14"

If you're on Laravel 5.5 or higher, the package will be auto-discovered. Otherwise, you will need to manually configure it in your config/app.php.

config/app.php
Copied
'providers' => array(
    // ...
    Sentry\Laravel\ServiceProvider::class,
),
'aliases' => array(
    // ...
    'Sentry' => Sentry\Laravel\Facade::class,
),

Add Sentry reporting to App/Exceptions/Handler.php.

App/Exceptions/Handler.php
Copied
public function report(Exception $exception)
{
    if ($this->shouldReport($exception) && app()->bound('sentry')) {
        app('sentry')->captureException($exception);
    }

    parent::report($exception);
}

Configure

Configure the Sentry

DSNThe Data Source Name (DSN) key tells the Sentry SDK where to send events, ensuring they go to the right project.
with this command:

Copied
php artisan sentry:publish --dsn=https://examplePublicKey@o0.ingest.sentry.io/0

It creates the config file (config/sentry.php) and adds the DSN to your .env file.

.env
Copied
SENTRY_LARAVEL_DSN=https://examplePublicKey@o0.ingest.sentry.io/0

Verify

Verify With Artisan

You can test your configuration using the provided sentry:test artisan command:

Copied
php artisan sentry:test

Verify With Code

You can verify that Sentry is capturing errors in your Laravel application by creating a route that will throw an exception:

routes/web.php
Copied
Route::get('/debug-sentry', function () {
    throw new Exception('My first Sentry error!');
});

Visiting this route will trigger an exception that will be captured by Sentry.

Local Development and Testing

When Sentry is installed in your application, it will also be active when you are developing or running tests.

You most likely don't want errors to be sent to Sentry when you are developing or running tests. To avoid this, set the

DSNThe Data Source Name (DSN) key tells the Sentry SDK where to send events, ensuring they go to the right project.
value to null to disable sending errors to Sentry.

You can also do this by not defining SENTRY_LARAVEL_DSN in your .env or by defining it as SENTRY_LARAVEL_DSN=null.

If you do leave Sentry enabled when developing or running tests, it's possible for it to have a negative effect on the performance of your application or test suite.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").