zhangsanfeng88 发表于 2018-10-21 11:17:44

laravel将sql写入日志

  

  
DB::listen(function($sql) {
  
                dump($sql);                // echo $sql->sql;
  
                // dump($sql->bindings);
  
            });
  

  

  
// 如果要放入日志文件中
  

  
    DB::listen(    function ($sql) {
  
      // $sql is an object with the properties:
  
      //sql: The query
  
      //bindings: the sql query variables
  
      //time: The execution time for the query
  
      //connectionName: The name of the connection
  

  
      // To save the executed queries to file:
  
      // Process the sql and the bindings:
  
      foreach ($sql->bindings as $i => $binding) {            if ($binding instanceof \DateTime) {                $sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
  
            } else {                if (is_string($binding)) {                  $sql->bindings[$i] = "'$binding'";
  
                }
  
            }
  
      }      // Insert bindings into query
  
      $query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);      $query = vsprintf($query, $sql->bindings);      // Save the query to file
  
      $logFile = fopen(
  
            storage_path('logs' . DIRECTORY_SEPARATOR . date('Y-m-d') . '_query.log'),            'a+'
  
      );
  
      fwrite($logFile, date('Y-m-d H:i:s') . ': ' . $query . PHP_EOL);
  
      fclose($logFile);
  
    }
  
);


页: [1]
查看完整版本: laravel将sql写入日志