Laravel
Laravel is supported using a native package: sentry-laravel.
This guide is for Laravel 8+. We also provide instructions for other versions as well as Lumen-specific instructions.
Install
Install the sentry/sentry-laravel
package:
composer require sentry/sentry-laravel
Enable capturing unhandled exception to report to Sentry by making the following change to your App/Exceptions/Handler.php
:
App/Exceptions/Handler.php
public function register()
{
$this->reportable(function (Throwable $e) {
if ($this->shouldReport($e) && app()->bound('sentry')) {
app('sentry')->captureException($e);
}
});
}
Alternatively, you can configure Sentry in your Laravel Log Channel, allowing you to log info
and debug
as well.
Configure
Configure the Sentry DSN with this command:
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
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:
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
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.
Performance Monitoring
Set traces_sample_rate
in config/sentry.php
or SENTRY_TRACES_SAMPLE_RATE
in your .env
to a value greater than 0.0
. Setting a value greater than 0.0
will enable Performance Monitoring, 0
(the default) will disable Performance Monitoring.
.env
# Be sure to lower this value in production otherwise you could burn through your quota quickly.
SENTRY_TRACES_SAMPLE_RATE=1.0
The example configuration above will transmit 100% of captured traces. Be sure to lower this value in production or you could use up your quota quickly.
You can also be more granular with the sample rate by using the traces_sampler
option. Learn more in Using Sampling to Filter Transaction Events.
Performance data is transmitted using a new event type called "transactions", which you can learn about in Distributed Tracing.
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 DSN 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.
- Package:
- composer:sentry/sentry-laravel
- Version:
- 4.7.1
- Repository:
- https://github.com/getsentry/sentry-laravel