@@ -261,11 +261,19 @@ public function onRequest(\Swoole\Http\Request $request, \Swoole\Http\Response $
261261 ++ self ::$ worker ->worker_http_request_counter ;
262262 $ count = self ::$ http_request_counter ->add ();
263263
264- $ request_time = $ request ->server ['request_time_float ' ];
265- $ micro_second = substr (sprintf ('%.3f ' , $ request_time - floor ($ request_time )), 2 );
266- $ request_string = date ("[H:i:s. $ micro_second] " , $ request_time ) . self ::$ worker_id . "- {$ count } " .
267- ($ request ->header ['x-forwarded-for ' ] ?? $ request ->server ['remote_addr ' ]) . ' ' .
268- $ request ->server ['request_method ' ] . ' ' . ($ request ->header ['host ' ] ?? '' ) .
264+ $ request_time_float = $ request ->server ['request_time_float ' ];
265+ $ request_time = (int )$ request_time_float ;
266+ $ client_ip = $ request ->header ['x-forwarded-for ' ] ?? $ request ->server ['remote_addr ' ];
267+ $ client_ip_int = ip2long ($ client_ip );
268+ $ local_ip_right = ip2long (Environment::getServiceConfig ()->local_ip ) % 0x10000 ;
269+ $ request_id = sprintf ('%08x-%04x-4%03x-%x%03x-%07x%05x ' , $ client_ip_int , $ local_ip_right , mt_rand (0 , 0xFFF ),
270+ mt_rand (8 , 0xB ), mt_rand (0 , 0xFFF ), ((int )$ request_time ) >> 4 , $ count % 0x100000 );
271+ \SysContext::set ('request_id ' , $ request_id );
272+ $ response ->header ('X-Request-ID ' , $ request_id );
273+
274+ $ micro_second = substr (sprintf ('%.3f ' , $ request_time_float - $ request_time ), 2 );
275+ $ request_string = date ("[H:i:s. $ micro_second] " , $ request_time ) . self ::$ worker_id . "- {$ count } " . $ client_ip .
276+ ' ' . $ request ->server ['request_method ' ] . ' ' . ($ request ->header ['host ' ] ?? '' ) .
269277 $ request ->server ['request_uri ' ] . (isset ($ request ->server ['query_string ' ]) ? '? ' .
270278 $ request ->server ['query_string ' ] : '' );
271279
0 commit comments