gitlab-org--gitlab-foss/config/initializers/0_log_deprecations.rb

26 lines
937 B
Ruby

# frozen_string_literal: true
def log_deprecations?
via_env_var = Gitlab::Utils.to_boolean(ENV['GITLAB_LOG_DEPRECATIONS'])
# enable by default during development unless explicitly turned off
via_env_var.nil? ? Rails.env.development? : via_env_var
end
if log_deprecations?
# Log deprecation warnings emitted through Kernel#warn, such as from gems or
# the Ruby VM.
actions = {
/.+is deprecated$/ => lambda do |warning|
Gitlab::DeprecationJsonLogger.info(message: warning.strip, source: 'ruby')
# Returning :default means we continue emitting this to stderr as well.
:default
end
}
Warning.process('', actions)
# Log deprecation warnings emitted from Rails (see ActiveSupport::Deprecation).
ActiveSupport::Notifications.subscribe('deprecation.rails') do |name, start, finish, id, payload|
Gitlab::DeprecationJsonLogger.info(message: payload[:message].strip, source: 'rails')
end
end