Commit e3a3bb21 authored by Sean McGivern's avatar Sean McGivern

Log more lines for exceptions

Gitlab::BacktraceCleaner excludes some 'boring' lines from exception
stack traces: initializers, middlewares, logging code, etc.

This makes sense for development usage, or where we want to trace the
origin of (say) a database query. But in logs - particularly production
logs - we want all of our application code in the stack trace, because
we might have an error in our middleware, or we might be in a particular
code path triggered by a middleware.
parent 304eb13b
# frozen_string_literal: true
# Remove some GitLab code from backtraces. Do not use this for logging errors in
# production environments, as the error may be thrown by our middleware.
module Gitlab
module BacktraceCleaner
IGNORE_BACKTRACES = %w[
......
......@@ -23,7 +23,7 @@ module Gitlab
end
if exception.backtrace
payload['exception.backtrace'] = Gitlab::BacktraceCleaner.clean_backtrace(exception.backtrace)
payload['exception.backtrace'] = Rails.backtrace_cleaner.clean(exception.backtrace)
end
end
end
......
......@@ -18,7 +18,7 @@ module Gitlab
data.merge!(job_data) if job_data.present?
end
data[:error_backtrace] = Gitlab::BacktraceCleaner.clean_backtrace(job_exception.backtrace) if job_exception.backtrace.present?
data[:error_backtrace] = Rails.backtrace_cleaner.clean(job_exception.backtrace) if job_exception.backtrace.present?
Sidekiq.logger.warn(data)
end
......
......@@ -98,7 +98,7 @@ RSpec.describe Gitlab::GrapeLogging::Loggers::ExceptionLogger do
before do
current_backtrace = caller
allow(exception).to receive(:backtrace).and_return(current_backtrace)
expected['exception.backtrace'] = Gitlab::BacktraceCleaner.clean_backtrace(current_backtrace)
expected['exception.backtrace'] = Rails.backtrace_cleaner.clean(current_backtrace)
end
it 'includes the backtrace' do
......
......@@ -33,7 +33,7 @@ RSpec.describe Gitlab::SidekiqLogging::ExceptionHandler do
error_class: 'RuntimeError',
error_message: exception_message,
context: 'Test',
error_backtrace: Gitlab::BacktraceCleaner.clean_backtrace(backtrace)
error_backtrace: Rails.backtrace_cleaner.clean(backtrace)
)
expect(logger).to receive(:warn).with(expected_data)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment