clowdy / laravel-raven
Sentry (Raven) error monitoring for Laravel with send in background
Installs: 90 842
Dependents: 0
Suggesters: 0
Security: 0
Stars: 17
Watchers: 5
Forks: 2
Open Issues: 0
Requires
- php: >=5.5.9
- illuminate/log: ~5
- illuminate/queue: ~5
- illuminate/support: ~5
- raven/raven: ~0.13
Requires (Dev)
- mockery/mockery: ~0.9.1
- phpunit/phpunit: ~4.0
README
Laravel Raven Sentry (Raven) error monitoring for Laravel 4 & 5 with send in background using queues
Sentry (Raven) error monitoring for Laravel 5 with send in background using queues. This will add a listener to Laravel's existing log system. It makes use to Laravel's queues to push messages into the background without slowing down the application.
Installation
Add the package to your composer.json
and run composer update
.
{ "require": { "clowdy/laravel-raven": "2.1.*" } }
Add the service provider in config/app.php
:
Clowdy\Raven\RavenServiceProvider::class,
Register the Raven alias:
'Raven' => Clowdy\Raven\Facades\Raven::class,
Looking for a Laravel 4 compatible version?
Checkout the 1.0 branch
Configuration
Publish the included configuration file:
$ php artisan vendor:publish
Change the Sentry DSN by using the RAVEN_DSN
env variable or changing the config file:
RAVEN_DSN=your-raven-dsn
This library uses the queue system, make sure your config/queue.php
file is configured correctly. You can also specify the connection and the queue to use in the raven config. The connection and queue must exist in config/queue.php
. These can be set using the RAVEN_QUEUE_CONNECTION
for connection and RAVEN_QUEUE_NAME
for the queue.
RAVEN_QUEUE_CONNECTION=redis RAVEN_QUEUE_NAME=error
The job data can be quite large, ensure you are using a queue that can support large data sets like redis
or sqs
.
If the job fails to add into the queue, it will be sent directly to sentry, slowing down the request, so its not lost.
Usage
To monitor exceptions, simply use the Log
facade or helper:
Log::error($exception); // or logger()->error($exception);
You can change the logs used by changing the log level in the config by modifying the env var.
RAVEN_LEVEL=error
Event Id
There is a method to get the latest event id so it can be used on things like the error page.
Raven::getLastEventId();
Context information
You can pass additional information as context like this:
Log::error('Oops, Something went wrong', [ 'user' => ['name' => $user->name, 'email' => $user->email] ]);
User data can alternatively be added to the context of any messages sent via a processor, such as the included UserDataProcessor
; see below.
Included optional processors
UserDataProcessor
This processor attaches data about the current user to the error report.
'processors' => [ Clowdy\Raven\Processors\UserDataProcessor::class, ],
Or, to configure the UserDataProcessor
object:
'processors' => [ new Clowdy\Raven\Processors\UserDataProcessor([ 'only' => ['id', 'username', 'email'], // This is ['id'] by default; pass [] or null to include all fields 'appends' => ['normallyHiddenProperty'], ]), ],
See the UserDataProcessor
source for full details.
LocaleProcessor
This processor attaches to the error report the current application locale as a tag.
'processors' => [ Clowdy\Raven\Processors\LocaleProcessor::class, ],
Credits
This package was inspired rcrowe/Raven.