Skip to content

Commit b1d6d05

Browse files
authored
fix: ForwardingLogger should foward block param (#1616)
1 parent 1574c41 commit b1d6d05

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

sdk/lib/opentelemetry/sdk/forwarding_logger.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ def initialize(logger, level:)
3535
end
3636
end
3737

38-
def add(severity, message = nil, progname = nil)
38+
def add(severity, message = nil, progname = nil, &block)
3939
return true if severity < @level
4040

41-
@logger.add(severity, message, progname)
41+
@logger.add(severity, message, progname, &block)
4242
end
4343

4444
def debug(progname = nil, &block)

sdk/test/opentelemetry/sdk/configurator_test.rb

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,13 @@
3131
_(configurator.logger).must_be_instance_of(Logger)
3232
end
3333

34-
it 'assigns the logger to OpenTelemetry.logger' do
34+
it 'assigns the logger to OpenTelemetry.logger, with a default level of info' do
3535
custom_logger = Logger.new(File::NULL, level: 'INFO')
3636
_(OpenTelemetry.logger).wont_equal custom_logger
3737

3838
OpenTelemetry::SDK.configure { |c| c.logger = custom_logger }
3939
_(OpenTelemetry.logger.instance_variable_get(:@logger)).must_equal custom_logger
40+
_(OpenTelemetry.logger.instance_variable_get(:@level)).must_equal Logger::INFO
4041
_(OpenTelemetry.logger).must_be_instance_of(OpenTelemetry::SDK::ForwardingLogger)
4142
end
4243

@@ -62,6 +63,26 @@
6263
_(log_stream.string).must_be_empty
6364
end
6465
end
66+
67+
it 'forwards log messages supplied as parameters' do
68+
OpenTelemetry::TestHelpers.with_test_logger do |log_stream|
69+
custom_logger = Logger.new(log_stream)
70+
OpenTelemetry::SDK.configure { |c| c.logger = custom_logger }
71+
message = 'The forwarding logger should forward this message'
72+
OpenTelemetry.logger.info(message)
73+
_(log_stream.string).must_include message
74+
end
75+
end
76+
77+
it 'forwards log messages supplied in blocks' do
78+
OpenTelemetry::TestHelpers.with_test_logger do |log_stream|
79+
custom_logger = Logger.new(log_stream)
80+
OpenTelemetry::SDK.configure { |c| c.logger = custom_logger }
81+
message = 'The forwarding logger should forward this message'
82+
OpenTelemetry.logger.info { message }
83+
_(log_stream.string).must_include message
84+
end
85+
end
6586
end
6687

6788
describe '#resource=' do

0 commit comments

Comments
 (0)