diff options
author | Stan Hu <stanhu@gmail.com> | 2018-05-17 23:48:59 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-05-17 23:51:54 -0700 |
commit | 6b98033d9120c7dfc5276f623e27e7af22dd7b88 (patch) | |
tree | 732fdf915bf1cce184011c7bb3329e966b667d46 /lib/api/api.rb | |
parent | 4609a1268de9f15c02899c906cbb9ce27c495ab3 (diff) | |
download | gitlab-ce-6b98033d9120c7dfc5276f623e27e7af22dd7b88.tar.gz |
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
Diffstat (limited to 'lib/api/api.rb')
-rw-r--r-- | lib/api/api.rb | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/api/api.rb b/lib/api/api.rb index 5139e869c71..2fbeaaffcfe 100644 --- a/lib/api/api.rb +++ b/lib/api/api.rb @@ -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 |