输出 SQL 语句到 Log 日志
在 AppServiceProvider.php 中的 boot 方法中添加如下代码:
if ($this->app->isLocal()) {
// 记录DB操作日志
\DB::listen(function ($query) {
$sql = $query->sql;
foreach ($query->bindings as $value) {
$sql = \Str::replaceFirst('?', sprintf('%s', is_string($value) ? "'$value'" : $value), $sql);
}
\Log::channel('db')->info(sprintf('%s; [%ss]', $sql, number_format($query->time / 1000, 5)));
});
}
logging.php 中增加如下配置:
'db' => [
'driver' => 'daily',
'path' => storage_path('logs/db.log'),
'level' => 'info',
'days' => 7,
],
本作品采用《CC 协议》,转载必须注明作者和本文链接
优雅 👍
如果把文件日志改成插入数据库,会不会死循环?