输出 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 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4

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

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

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