This packages contains a nice and easy way to log errors that happen in your application. A job can be added to your scheduler in order to receive daily notifications about reported errors via e.g. Slack.
Support for Laravel Nova is also available to view a list of reported errors with the justbetter/nova-error-logger
package.
Please note that this package won't automatically save exceptions thrown by Laravel or PHP - you have to manually save them like the example shown later in this documentation.
In order to make use of the package the following actions are required.
Publish the configuration of the package.
php artisan vendor:publish --provider="JustBetter\ErrorLogger\ServiceProvider"
Run your migrations.
php artisan migrate
NOTE! This is optional and not required in order to use the package.
In your App\Console\Kernel.php
you can add the daily error notification job like so:
use JustBetter\ErrorLogger\Jobs\ErrorNotificationJob;
$schedule->job(ErrorNotificationJob::class)->dailyAt('09:00');
Add the following variable to your .env
to define the logging channel for daily notifications if the job is enabled.
LARAVEL_ERROR_NOTIFICATION_CHANNEL=slack
The logging table can build up pretty fast. In order to prune older records, you can use the following command:
php artisan laravel-error-logger:prune --all
php artisan laravel-error-logger:prune --hours=720
To automatically prune the logs, you may want to add the command to your scheduler.
IMPORTANT! When using the method
withChannel
it will directly send a notification when saved.
The error class can be easily used. No value is required to be set in order to save the log.
use JustBetter\ErrorLogger\Models\Error;
Error::log()
->withGroup('Magento')
->withMessage('Something went wrong!')
->withDetails('Extra information of this log!')
->withThrowable($exception)
->withChannel('slack')
->withModel($model)
->save();
You may also use the method fromThrowable
. This function accepts a Throwable
which automatically sets the following
extra attributes compared to withThrowable
:
- withDetails
- withCode
It is still possible to override these values when chaining them after the throwable.
Errors will be automatically grouped. In the config you can set an interval for this.
If you don't want to group you can call dontGroup()
.
You can hide errors from the index by calling hideFromIndex()
.
When using the withModel
method you can retrieve errors for a specific model.
The \JustBetter\ErrorLogger\Traits\HasErrors
trait contains this relation with the name errors()
The MIT License (MIT). Please see License File for more information.