DBlog is a lightweight and simple Laravel Package that allows you write custom logs and error messages to a database table.
Written to mirror the Laravel Logging conventions, DBlog
provides 8 logging levels defined in RFC 5424 and the ability to add an optional context array to each log.
NOTE: This package DOES NOT integrate with the Laravel / Monolog logging system and does not capture system level events. It's purpose is to be used to capture your own custom log needs.
Via Composer:
$ composer require supersixtwo/dblog
Then add the service provider in config/app.php
:
Supersixtwo\Dblog\DBlogServiceProvider::class,
And the alias in config/app.php
:
'DBlog' => Supersixtwo\Dblog\DBlogClass::class,
Re-run the autoload:
$ composer dump-autoload
Publish the migrations:
$ php artisan vendor:publish
Run the migrations to install the tables in the database:
$ php artisan migrate
We've provided DBlog
with a familiar interface, mirroring Laravel's own built-in logging methods. These follow the same RFC 5424 defined logging levels including: emergency, alert, critical, error, warning, notice, info, and debug.
Include the DBlog
at the top of your class or model:
use DBlog;
Use one of the 8 helper methods in your logic:
DBlog::emergency($msg);
DBlog::alert($msg);
DBlog::critical($msg);
DBlog::error($msg);
DBlog::warning($msg);
DBlog::notice($msg);
DBlog::info($msg);
DBlog::debug($msg);
In addition to logging text based messages, you can also an array of contextual information to the logging methods. This contextual data will converted to a json
array and stored in separate column.
DBlog::info('New User Creation', ['id' => 45, 'created_by' => 'jdoe']);
To avoid collisions and naming conflicts with the DBlog Facade or other tables, the database table can be accessed using the following:
- Model Name:
DBlogModel
- Table Name:
dblogs
Column | Type | Default Value | Nullable | Comments |
---|---|---|---|---|
id | int(10) unsigned | NO | ||
level_id | int(11) | NO | The RFC 5424 log level id | |
level_description | varchar(255) | NO | The RFC 5424 log level description | |
message | text | NO | ||
context | text | YES | ||
created_at | timestamp | CURRENT_TIMESTAMP | NO |
First, include the DBlogModel
with the namespace:
use Supersixtwo\Dblog\DBlogModel;
Then via Query Builder:
$logs = DB::table('dblogs')->get();
or via Eloquent:
$logs = DBlogModel::all();
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email appsupport@supersixtwo.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.
This package is heavily inspired by the Monolog Logging Library.