在AppServiceProvider.php中的boot方法中添加如下代码 即可
public function boot()
{
$url = $request->url();
$param = $request->getRequestUri();
$token = $request->input('token');
$source = $request->input('source');
$uuid = get_uid($token, $source);
$bdid = get_bd_uid($token, $source);
$uid = $uuid ? $uuid : $bdid ? $bdid : 0;
$logData = [
'uid' => $uid, //判断用户的uid,需要根据自己的业务判断
'router' => $url, //请求的url
'time' => date('Y-m-d H:i:s'),
'currentip' => $_SERVER['SERVER_ADDR'], //IP地址
'params' => $param //请求的参数
];
//listen db
DB::listen(function ($query) use ($logData) {
$tmp = str_replace('?', '"' . '%s' . '"', $query->sql);
$tmp = @vsprintf($tmp, $query->bindings);
$tmp = str_replace("\\", "", $tmp);
Log::channel("sql")->info(' execution time: ' . $query->time . 'ms; ' . $tmp . "\t");
$action = substr($tmp, 0, 6);
$patt = strpos($tmp,'ims_tiny_wmall_action_log');
//如果是更新删除操作则存储到数据库里
if ($action == 'update' || $action == 'delete' || $action == 'insert' && !$patt ) {
$actionModel = new TinyWmallActionLog();
$logData['sql'] = $tmp;
$actionModel->insert($logData);
}
});
}
在storage/logs/laravel.log里就可查看日志
命令:
tail -f /web/php_xiuxiu_admin/storage/logs/laravel.log | grep “execution”