justbetter / laravel-error-logger
Simple way to log errors with Laravel Nova support.
Installs: 12 718
Dependents: 2
Suggesters: 0
Security: 0
Stars: 4
Watchers: 4
Forks: 1
Open Issues: 0
Type:laravel-package
Requires
- php: ^8.1
- laravel/framework: ^10.0|^11.0
Requires (Dev)
- larastan/larastan: ^2.9
- orchestra/testbench: ^8.0|^9.0
README
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.
Setup
In order to make use of the package the following actions are required.
Publishing
Publish the configuration of the package.
php artisan vendor:publish --provider="JustBetter\ErrorLogger\ServiceProvider"
Migrations
Run your migrations.
php artisan migrate
Scheduler
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');
Configuration
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
Commands
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.
Example usage
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();
Method FromThrowable
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.
Grouping
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()
.
Hiding from index
You can hide errors from the index by calling hideFromIndex()
.
Model relation
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()
License
The MIT License (MIT). Please see License File for more information.