Fix api_json.log not always reporting the right HTTP status code
As described in https://github.com/aserafin/grape_logging/issues/45, if a Grape error is caught by the handlers and a different return code is returned, then the api_json.log would have a 500 error code instead of the right value. Inserting the GrapeLogging middleware after the Grape middleware fixes this problem. Seen in https://gitlab.com/gitlab-com/infrastructure/issues/4249
This commit is contained in:
parent
4609a1268d
commit
6b98033d91
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix api_json.log not always reporting the right HTTP status code
|
||||
merge_request:
|
||||
author:
|
||||
type: fixed
|
|
@ -8,14 +8,15 @@ module API
|
|||
PROJECT_ENDPOINT_REQUIREMENTS = { id: NO_SLASH_URL_PART_REGEX }.freeze
|
||||
COMMIT_ENDPOINT_REQUIREMENTS = PROJECT_ENDPOINT_REQUIREMENTS.merge(sha: NO_SLASH_URL_PART_REGEX).freeze
|
||||
|
||||
use GrapeLogging::Middleware::RequestLogger,
|
||||
logger: Logger.new(LOG_FILENAME),
|
||||
formatter: Gitlab::GrapeLogging::Formatters::LogrageWithTimestamp.new,
|
||||
include: [
|
||||
GrapeLogging::Loggers::FilterParameters.new,
|
||||
GrapeLogging::Loggers::ClientEnv.new,
|
||||
Gitlab::GrapeLogging::Loggers::UserLogger.new
|
||||
]
|
||||
insert_before Grape::Middleware::Error,
|
||||
GrapeLogging::Middleware::RequestLogger,
|
||||
logger: Logger.new(LOG_FILENAME),
|
||||
formatter: Gitlab::GrapeLogging::Formatters::LogrageWithTimestamp.new,
|
||||
include: [
|
||||
GrapeLogging::Loggers::FilterParameters.new,
|
||||
GrapeLogging::Loggers::ClientEnv.new,
|
||||
Gitlab::GrapeLogging::Loggers::UserLogger.new
|
||||
]
|
||||
|
||||
allow_access_with_scope :api
|
||||
prefix :api
|
||||
|
|
Loading…
Reference in New Issue