Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'config/initializers/lograge.rb')
-rw-r--r--config/initializers/lograge.rb54
1 files changed, 32 insertions, 22 deletions
diff --git a/config/initializers/lograge.rb b/config/initializers/lograge.rb
index e3601a9538e..0ea0adf86bc 100644
--- a/config/initializers/lograge.rb
+++ b/config/initializers/lograge.rb
@@ -1,30 +1,40 @@
# Only use Lograge for Rails
unless Gitlab::Runtime.sidekiq?
- filename = File.join(Rails.root, 'log', "#{Rails.env}_json.log")
+ Rails.application.reloader.to_prepare do
+ filename = File.join(Rails.root, 'log', "#{Rails.env}_json.log")
+ db_counter = Gitlab::Metrics::Subscribers::ActiveRecord
- Rails.application.configure do
- config.lograge.enabled = true
- # Store the lograge JSON files in a separate file
- config.lograge.keep_original_rails_log = Gitlab::Utils.to_boolean(ENV.fetch('UNSTRUCTURED_RAILS_LOG', 'true'))
- # Don't use the Logstash formatter since this requires logstash-event, an
- # unmaintained gem that monkey patches `Time`
- config.lograge.formatter = Lograge::Formatters::Json.new
- config.lograge.logger = ActiveSupport::Logger.new(filename)
- config.lograge.before_format = lambda do |data, payload|
- data.delete(:error)
- data[:db_duration_s] = Gitlab::Utils.ms_to_round_sec(data.delete(:db)) if data[:db]
- data[:view_duration_s] = Gitlab::Utils.ms_to_round_sec(data.delete(:view)) if data[:view]
- data[:duration_s] = Gitlab::Utils.ms_to_round_sec(data.delete(:duration)) if data[:duration]
- data.merge!(::Gitlab::Metrics::Subscribers::ActiveRecord.db_counter_payload)
+ Rails.application.configure do
+ config.lograge.enabled = true
+ # Store the lograge JSON files in a separate file
+ config.lograge.keep_original_rails_log = Gitlab::Utils.to_boolean(ENV.fetch('UNSTRUCTURED_RAILS_LOG', 'true'))
+ # Don't use the Logstash formatter since this requires logstash-event, an
+ # unmaintained gem that monkey patches `Time`
+ config.lograge.formatter = Lograge::Formatters::Json.new
+ config.lograge.logger = ActiveSupport::Logger.new(filename)
+ config.lograge.before_format = lambda do |data, payload|
+ data.delete(:error)
+ data[:db_duration_s] = Gitlab::Utils.ms_to_round_sec(data.delete(:db)) if data[:db]
+ data[:view_duration_s] = Gitlab::Utils.ms_to_round_sec(data.delete(:view)) if data[:view]
+ data[:duration_s] = Gitlab::Utils.ms_to_round_sec(data.delete(:duration)) if data[:duration]
+ data.merge!(db_counter.db_counter_payload)
- data
- end
+ # Remove empty hashes to prevent type mismatches
+ # These are set to empty hashes in Lograge's ActionCable subscriber
+ # https://github.com/roidrage/lograge/blob/v0.11.2/lib/lograge/log_subscribers/action_cable.rb#L14-L16
+ %i(method path format).each do |key|
+ data[key] = nil if data[key] == {}
+ end
+
+ data
+ end
- # This isn't a user-reachable controller; we use it to check for a
- # valid CSRF token in the API
- config.lograge.ignore_actions = ['Gitlab::RequestForgeryProtection::Controller#index']
+ # This isn't a user-reachable controller; we use it to check for a
+ # valid CSRF token in the API
+ config.lograge.ignore_actions = ['Gitlab::RequestForgeryProtection::Controller#index']
- # Add request parameters to log output
- config.lograge.custom_options = Gitlab::Lograge::CustomOptions
+ # Add request parameters to log output
+ config.lograge.custom_options = Gitlab::Lograge::CustomOptions
+ end
end
end