yoeriboven / laravel-log-db
A database driver for logging with Laravel
Installs: 51 547
Dependents: 0
Suggesters: 0
Security: 0
Stars: 44
Watchers: 5
Forks: 12
Open Issues: 0
Requires
- php: ^8.1|^8.2|^8.3
- nesbot/carbon: ^2.72|^3.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.39
- nunomaduro/collision: ^6.0|^7.0|^8.0
- orchestra/testbench: ^7.0|^8.0|^9.0
- pestphp/pest: ^1.21|^2.0|^3.0
- pestphp/pest-plugin-laravel: ^1.1|^2.0|^3.0
README
Laravel Database Logger
This package provides a custom log driver for storing Laravel log messages in the database.
Compatible with Laravel 9, 10 and 11.
use Illuminate\Support\Facades\Log; Log::channel('db')->info('Your message');
Installation
Install the package via Composer:
composer require yoeriboven/laravel-log-db
Publish and run the migrations:
php artisan vendor:publish --tag="log-db-migrations"
php artisan migrate
Next, configure the database channel in config/logging.php
:
use Yoeriboven\LaravelLogDb\DatabaseLogger; return [ 'channels' => [ 'db' => [ 'driver' => 'custom', 'via' => DatabaseLogger::class, 'connection' => env('LOG_DB_CONNECTION'), // Optional, defaults to app's DB connection 'days' => 7, // Optional, retention period in days ], ] ]
Usage
To use the database channel, either:
- Add it to the stack channel for combined logging:
// config/logging.php return [ 'channels' => [ 'stack' => [ 'channels' => ['single', 'db'], ], // other channels ] ]
- Log directly to the database:
use Illuminate\Support\Facades\Log; Log::channel('db')->info('Your log message');
Fallback channel
If the database is unavailable, you can define a fallback channel to handle logs:
// config/logging.php return [ 'channels' => [ 'fallback' => [ 'channels' => ['single'], ], ] ]
If no fallback channel is defined it will default to the single
channel.
Pruning the logs
To automatically delete logs older than a specified number of days, set the days
key in the configuration and schedule log pruning:
$schedule->command('model:prune', [ '--model' => [ \Yoeriboven\LaravelLogDb\Models\LogMessage::class, ], ])->daily();
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.