输出 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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

如果把文件日志改成插入数据库,会不会死循环?

2年前 评论
JonathanEd (楼主) 2年前
还不出来 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
1
粉丝
0
喜欢
1
收藏
11
排名:2715
访问:344
私信
所有博文
博客标签
社区赞助商