Merge "Use the WebRequest::getCheck() shortcut where possible"
[lhc/web/wiklou.git] / includes / api / ApiMain.php
index 31b82c1..261e4a4 100644 (file)
@@ -1643,33 +1643,29 @@ class ApiMain extends ApiBase {
                $logCtx = [
                        '$schema' => '/mediawiki/api/request/0.0.1',
                        'meta' => [
+                               'request_id' => WebRequest::getRequestId(),
                                'id' => UIDGenerator::newUUIDv1(),
-                               'dt' => gmdate( 'c' ),
+                               'dt' => wfTimestamp( TS_ISO_8601 ),
                                'domain' => $this->getConfig()->get( 'ServerName' ),
                                'stream' => 'mediawiki.api-request'
                        ],
                        'http' => [
                                'method' => $request->getMethod(),
-                               'client_ip' => $request->getIP(),
-                               'request_headers' => []
+                               'client_ip' => $request->getIP()
                        ],
                        'database' => wfWikiID(),
                        'backend_time_ms' => (int)round( $time * 1000 ),
-                       'params' => []
                ];
 
                // If set, these headers will be logged in http.request_headers.
-               // A http.request_headers entry should not be set if the header was not provided.
-               if ( $request->getHeader( 'User-agent' ) ) {
-                       $logCtx['http']['request_headers']['user-agent'] = $request->getHeader( 'User-agent' );
-               }
-               if ( $request->getHeader( 'Api-user-agent' ) ) {
-                       $logCtx['http']['request_headers']['api-user-agent'] = $request->getHeader( 'Api-user-agent' );
+               $httpRequestHeadersToLog = [ 'accept-language', 'referer', 'user-agent' ];
+               foreach ( $httpRequestHeadersToLog as $header ) {
+                       if ( $request->getHeader( $header ) ) {
+                               // Set the header in http.request_headers
+                               $logCtx['http']['request_headers'][$header] = $request->getHeader( $header );
+                       }
                }
 
-               $logCtx['meta']['request_id'] =
-                       $logCtx['http']['request_headers']['x-request-id'] = WebRequest::getRequestId();
-
                if ( $e ) {
                        $logCtx['api_error_codes'] = [];
                        foreach ( $this->errorMessagesFromException( $e ) as $msg ) {