summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-05-09 00:14:16 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-05-09 00:14:16 +0000
commit9922b38ff03500d311dd7de771961154f50ea8f4 (patch)
treeff7919d2b88c17be4d6c56db21a34ae3f90d1636
parent0cb58c941627c8237e65a67e83aa9ff8b59109ae (diff)
downloadgitlab-ce-9922b38ff03500d311dd7de771961154f50ea8f4.tar.gz
Add latest changes from gitlab-org/gitlab@15-11-stable-ee
-rw-r--r--config/initializers/lograge.rb2
-rw-r--r--lib/gitlab/app_logger.rb8
-rw-r--r--spec/lib/gitlab/app_logger_spec.rb29
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