diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-09 00:14:16 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-09 00:14:16 +0000 |
commit | 9922b38ff03500d311dd7de771961154f50ea8f4 (patch) | |
tree | ff7919d2b88c17be4d6c56db21a34ae3f90d1636 | |
parent | 0cb58c941627c8237e65a67e83aa9ff8b59109ae (diff) | |
download | gitlab-ce-9922b38ff03500d311dd7de771961154f50ea8f4.tar.gz |
Add latest changes from gitlab-org/gitlab@15-11-stable-ee
-rw-r--r-- | config/initializers/lograge.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/app_logger.rb | 8 | ||||
-rw-r--r-- | spec/lib/gitlab/app_logger_spec.rb | 29 |
3 files changed, 34 insertions, 5 deletions
diff --git a/config/initializers/lograge.rb b/config/initializers/lograge.rb index 5ea3b553713..e5abc0b919b 100644 --- a/config/initializers/lograge.rb +++ b/config/initializers/lograge.rb @@ -8,7 +8,7 @@ unless Gitlab::Runtime.sidekiq? Rails.application.configure do config.lograge.enabled = true # Store the lograge JSON files in a separate file - config.lograge.keep_original_rails_log = Rails.env.development? + config.lograge.keep_original_rails_log = Gitlab::Utils.to_boolean(ENV.fetch('UNSTRUCTURED_RAILS_LOG', 'false')) # 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 diff --git a/lib/gitlab/app_logger.rb b/lib/gitlab/app_logger.rb index decc6be3410..33b63f2f599 100644 --- a/lib/gitlab/app_logger.rb +++ b/lib/gitlab/app_logger.rb @@ -2,8 +2,14 @@ module Gitlab class AppLogger < Gitlab::MultiDestinationLogger + LOGGERS = [Gitlab::AppTextLogger, Gitlab::AppJsonLogger].freeze + def self.loggers - [Gitlab::AppJsonLogger] + if Gitlab::Utils.to_boolean(ENV.fetch('UNSTRUCTURED_RAILS_LOG', 'false')) + LOGGERS + else + [Gitlab::AppJsonLogger] + end end def self.primary_logger diff --git a/spec/lib/gitlab/app_logger_spec.rb b/spec/lib/gitlab/app_logger_spec.rb index 149c3d1f19f..4eb0d628291 100644 --- a/spec/lib/gitlab/app_logger_spec.rb +++ b/spec/lib/gitlab/app_logger_spec.rb @@ -7,9 +7,32 @@ RSpec.describe Gitlab::AppLogger, feature_category: :shared do specify { expect(described_class.primary_logger).to be Gitlab::AppJsonLogger } - it 'logs to AppJsonLogger' do - expect_any_instance_of(Gitlab::AppJsonLogger).to receive(:info).and_call_original + context 'when UNSTRUCTURED_RAILS_LOG is enabled' do + before do + stub_env('UNSTRUCTURED_RAILS_LOG', 'true') + end - subject.info('Hello World!') + it 'builds two Logger instances' do + expect(Gitlab::Logger).to receive(:new).and_call_original + expect(Gitlab::JsonLogger).to receive(:new).and_call_original + + subject.info('Hello World!') + end + + it 'logs info to multiple loggers' do + expect_any_instance_of(Gitlab::AppTextLogger).to receive(:info).and_call_original + expect_any_instance_of(Gitlab::AppJsonLogger).to receive(:info).and_call_original + + subject.info('Hello World!') + end + end + + context 'when UNSTRUCTURED_RAILS_LOG is disabled' do + it 'logs info to only the AppJsonLogger' do + expect_any_instance_of(Gitlab::AppTextLogger).not_to receive(:info).and_call_original + expect_any_instance_of(Gitlab::AppJsonLogger).to receive(:info).and_call_original + + subject.info('Hello World!') + end end end |