zoukankan      html  css  js  c++  java
  • Laravel 中输出 SQL 语句的到 log 日志

    在 AppServiceProvider.php 中的 boot 方法中添加如下代码 即可

     public function boot() {
            //数据库监听
            DB::listen(function ($query) {
    
                //排除时间
                //%Y-%m-%d %H:%i
                $tmp       = str_replace('%', '"' . '^^' . '"', $query->sql);
                $tmp       = str_replace('?', '"' . '%s' . '"', $tmp);
    
                $qBindings = [];
                foreach ($query->bindings as $key => $value) {
                    if (is_numeric($key)) {
                        $qBindings[] = $value;
                    } else {
                        $tmp = str_replace(':' . $key, '"' . $value . '"', $tmp);
                    }
                }
                //var_dump($query->sql,$tmp,$qBindings);
                if (count($qBindings)) {
                    $tmp = vsprintf($tmp, $qBindings);
                }
                $tmp = str_replace("\", "", $tmp);
                if ($query->time > 1000) { //添加慢日志
                    BLog::warning('use time: ' . $query->time . 'ms; ' . $tmp);
                }
                BLog::db('use time: ' . $query->time . 'ms; ' . $tmp);
            });
    
        }
    
  • 相关阅读:
    Wireshark抓包分析TCP 3次握手、4次挥手过程
    Wireshark基本介绍和学习TCP三次握手
    关于TCP窗口大小
    stat
    Disk
    内存对齐
    Openssl asn1parse命令
    checkinstall
    Nginx
    Linux top
  • 原文地址:https://www.cnblogs.com/HappyTeemo/p/15476057.html
Copyright © 2011-2022 走看看