Laravel Mysql Logger : Menyimpan Log Error di Laravel ke MySQL
Biasanya atau secara default jika laravel mengalami error maka otomatis akan menyimpan log error tersebut ke dalam file storage/log/laravel.log. Terdapat package yang memudahkan untuk mengganti log error tersebut ke database MySQL, yaitu Laravel MySQL Logger.
Instalasi
seperti biasa untuk instalasi melalui composer :
composer require itelmenko/laravel-mysql-logger
jika kita mau mengubah nama tabel default dan koneksi database yang digunakan dapat mengedit file .env seperti :
DB_LOG_TABLE=logs DB_LOG_CONNECTION=mysql
Bagi laravel versi 5.5 kebawah dengan menambahkan provider dalam file config/app.php seperti :
'providers' => array(
// ...
Logger\Laravel\Providers\MonologMysqlHandlerServiceProvider::class,
);
Selanjutnya melakukan publish config melalui artisan :
php artisan vendor:publish
dan juga migrate table
php artisan migrate
Penggunaan
Dalam file config/logging.php seperti :
<?php
// [...]
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['mysql'],
],
// [...]
'mysql' => [
'driver' => 'custom',
'via' => Logger\Laravel\Logging\MySQLLogger::class,
'connection' => env('DB_LOG_CONNECTION'),
'table' => env('DB_LOG_TABLE'),
'name' => 'my.channel' // optional
],
],
Lalu cara menambahkan log secara manual :
Log::channel('mysql')->info('Something happened!');
Untuk lebih jelasnya dapat menuju ke https://github.com/itelmenko/laravel-mysql-logger