itelmenko / laravel-mysql-logger
Laravel MySQL 驱动程序,用于 Monolog
v1.0.7
2023-07-26 14:17 UTC
Requires
- php: >=7.3.0
- laravel/framework: ^5.3|^6.0|^7.0|^8.0|^9.0|^10.0
- rorecek/laravel-ulid: ^2.0
README
此包会将错误记录到 MySQL 数据库,而不是 storage/log/laravel.log
文件。
安装
composer require itelmenko/laravel-mysql-logger
如果您希望更改默认的表名或数据库连接,请在您的 .env 文件中使用以下定义
DB_LOG_TABLE=logs
DB_LOG_CONNECTION=mysql
对于 Laravel < 5.5
,打开 config/app.php
并找到 providers
键。
'providers' => array(
// ...
ITelmenko\Logger\Laravel\Providers\MonologMysqlHandlerServiceProvider::class,
);
在 config/logging.php
<?php // [...] 'channels' => [ // [...] 'mysql' => [ 'driver' => 'custom', 'via' => ITelmenko\Logger\Laravel\Logging\MySQLLogger::class, 'connection' => env('DB_LOG_CONNECTION'), 'table' => env('DB_LOG_TABLE'), 'name' => 'my.channel' // optional ], ],
使用 Laravel Artisan CLI 发布配置。
php artisan vendor:publish
并选择选项 Provider: ITelmenko\Logger\Laravel\Providers\MonologMysqlHandlerServiceProvider
迁移表。
php artisan migrate
将 ITelmenko\Logger\Laravel\Exceptions\MysqlLoggerInsertException
添加到您的 ExceptionHandler
中,以防止在数据库连接失败时发生循环
public function register()
{
$this->reportable(function (Throwable $e) {
if ($this->shouldReport($e) && app()->bound('sentry')) {
app('sentry')->captureException($e);
}
if ($e instanceof MysqlLoggerInsertException) {
return false; // prevent looping
}
});
}
使用
在您的应用程序的某个位置
Log::channel('mysql')->info('Something happened!');
待办事项
将$table->bigIncrements('id')
修改为类似 ULID 的内容将根命名空间更改为ITelmenko
从模型中删除extra
字段删除updated_at
吗?为created_at
添加微秒数- 更新版本和 readme.md(关于迁移更改,关于 vendor:publish)
- 添加
php doc
- 添加 phpcs