Merge branch 'sh-structured-logging' into 'master'
Add structured logging for Rails processes See merge request !12928
This commit is contained in:
commit
9492fbc447
4 changed files with 33 additions and 0 deletions
3
Gemfile
3
Gemfile
|
@ -390,3 +390,6 @@ gem 'toml-rb', '~> 0.3.15', require: false
|
|||
# Feature toggles
|
||||
gem 'flipper', '~> 0.10.2'
|
||||
gem 'flipper-active_record', '~> 0.10.2'
|
||||
|
||||
# Structured logging
|
||||
gem 'lograge', '~> 0.5'
|
||||
|
|
|
@ -443,6 +443,10 @@ GEM
|
|||
logging (2.2.2)
|
||||
little-plugger (~> 1.1)
|
||||
multi_json (~> 1.10)
|
||||
lograge (0.5.1)
|
||||
actionpack (>= 4, < 5.2)
|
||||
activesupport (>= 4, < 5.2)
|
||||
railties (>= 4, < 5.2)
|
||||
loofah (2.0.3)
|
||||
nokogiri (>= 1.5.9)
|
||||
mail (2.6.5)
|
||||
|
@ -998,6 +1002,7 @@ DEPENDENCIES
|
|||
letter_opener_web (~> 1.3.0)
|
||||
license_finder (~> 2.1.0)
|
||||
licensee (~> 8.7.0)
|
||||
lograge (~> 0.5)
|
||||
loofah (~> 2.0.3)
|
||||
mail_room (~> 0.9.1)
|
||||
method_source (~> 0.8)
|
||||
|
|
4
changelogs/unreleased/sh-structured-logging.yml
Normal file
4
changelogs/unreleased/sh-structured-logging.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Add structured logging for Rails processes
|
||||
merge_request:
|
||||
author:
|
21
config/initializers/lograge.rb
Normal file
21
config/initializers/lograge.rb
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Only use Lograge for Rails
|
||||
unless Sidekiq.server?
|
||||
filename = File.join(Rails.root, 'log', "#{Rails.env}_json.log")
|
||||
|
||||
Rails.application.configure do
|
||||
config.lograge.enabled = true
|
||||
# Store the lograge JSON files in a separate file
|
||||
config.lograge.keep_original_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)
|
||||
# Add request parameters to log output
|
||||
config.lograge.custom_options = lambda do |event|
|
||||
{
|
||||
time: event.time,
|
||||
params: event.payload[:params].except(%w(controller action format))
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue