/raven-php

Sentry (Raven) error monitoring for Laravel and Lumen with send in background via queues

Primary LanguagePHPMIT LicenseMIT

Raven PHP

Sentry (Raven) error monitoring for Laravel and Lumen with send in background via queues

License Latest Version Total Downloads

Sentry (Raven) error monitoring for Laravel and Lumen with send in background via 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.

rollbar

Installation

Install the latest version with:

$ composer require twineis/raven-php

For Laravel add the service provider in config/app.php:

For Laravel 5.6

Twine\Raven\Providers\Laravel56ServiceProvider::class,

For Laravel 4.* and 5.* < 5.6

Twine\Raven\Providers\LaravelServiceProvider::class,

Register the Raven alias:

'Raven' => Twine\Raven\Facades\Raven::class,

For Lumen add the following to bootstrap/app.php

$app->register(Twine\Raven\Providers\LumenServiceProvider::class);

Configuration

Publish the included configuration file (Laravel only):

$ 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

app('log')->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 last 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]
]);

Credits

This package was inspired rcrowe/Raven.