getContent()); $actions=[ "接收申请单"=>'T0002', "申请单状态变更"=>'T0003', "检查完成通知"=>'MES0006' ]; Log::info($request->getContent()); $insertid=0; $data=[ 'mark'=>null, 'ip'=>"", 'request_header'=>$request->header(), 'post_data'=>$request->getContent(), 'get_data'=>[], 'request_url'=>$request->getPathInfo() ]; preg_match('/(.*?)<\/action>/', $request->getContent(), $matches); if (!empty($matches)) { $data['mark']= array_search($matches[1], $actions); } $insertid= self::RequestLog($data,$insertid); $response= $next($request); self::RequestLog(['response_data'=>self::JsonEncode($response->getContent())],$insertid); return $response; } public function RequestLog($arr,$id) { //记录请求日志 date_default_timezone_set('PRC'); LogService::CheckTableName(); $table_name = 'zz_request_log_' . date('ym'); $response_data = isset($arr['response_data']) ? self::JsonEncode($arr['response_data']) : ''; $header_data = isset($arr['request_header']) ?self::JsonEncode($arr['request_header']):''; $post_data = isset($arr['post_data'])?self::JsonEncode($arr['post_data']):''; $get_data = isset($arr['get_data'])?self::JsonEncode($arr['get_data'], JSON_UNESCAPED_UNICODE):''; $milliseconds = round(microtime(true) * 1000); $date = date("Y-m-d H:i:s", $milliseconds / 1000); $formatted_date = sprintf("%s.%03d", $date, $milliseconds % 1000); // $i=DB::insert("insert into ".$table_name." (request_ip, response_data,header_data,post_data,get_data,request_url,create_time,update_time) // values (?,?,?,?,?,?,?,?)",[$arr['ip'],$response_data,$header_data,$post_data,$get_data,$arr['request_url'],$formatted_date,$formatted_date]); // var_dump($i); if ($id > 0) { return DB::table($table_name)->where('id', $id)->update([ 'response_data' => $response_data, ]); } else { return DB::table($table_name)->insertGetId([ 'mark'=>$arr['mark'], 'request_ip' => $arr['ip'], 'response_data' => $response_data, 'header_data' => $header_data, 'post_data' => $post_data, 'get_data' => $get_data, 'request_url' => $arr['request_url'], 'create_time' => $formatted_date, 'update_time' => $formatted_date ]); } } public static function JsonEncode($data){ //格式化数据,转json $post_data =$data; $post_data = json_encode($post_data, JSON_UNESCAPED_UNICODE); $str_len = mb_strlen($post_data); $str_size = $str_len / 1024; if ($str_size > 40) $post_data = '{"data":"Row size too large"}'; return $post_data; } }