Set api-request log http.request_headers properly

$request->getHeader( 'Api-user-agent' ) was returning false,
and we can only accept string header values.

Bug: T214080
Change-Id: I3de8a455ad7dab9e3a67e24439e95f4968c93243
This commit is contained in:
Andrew Otto 2019-03-04 15:47:01 -05:00
parent 9dafc1c322
commit e453a7b33f

View file

@ -1654,16 +1654,22 @@ class ApiMain extends ApiBase {
'http' => [
'method' => $request->getMethod(),
'client_ip' => $request->getIP(),
'request_headers' => [
'user-agent' => $request->getHeader( 'User-agent' ),
'api-user-agent' => $request->getHeader( 'Api-user-agent' )
],
'request_headers' => []
],
'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' );
}
$logCtx['meta']['request_id'] =
$logCtx['http']['request_headers']['x-request-id'] = WebRequest::getRequestId();