Skip to content

Commit

Permalink
fix: ForwardingLogger should foward block param (#1616)
Browse files Browse the repository at this point in the history
  • Loading branch information
BrianHawley committed Mar 21, 2024
1 parent 1574c41 commit b1d6d05
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
4 changes: 2 additions & 2 deletions sdk/lib/opentelemetry/sdk/forwarding_logger.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ def initialize(logger, level:)
end
end

def add(severity, message = nil, progname = nil)
def add(severity, message = nil, progname = nil, &block)
return true if severity < @level

@logger.add(severity, message, progname)
@logger.add(severity, message, progname, &block)
end

def debug(progname = nil, &block)
Expand Down
23 changes: 22 additions & 1 deletion sdk/test/opentelemetry/sdk/configurator_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,13 @@
_(configurator.logger).must_be_instance_of(Logger)
end

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

OpenTelemetry::SDK.configure { |c| c.logger = custom_logger }
_(OpenTelemetry.logger.instance_variable_get(:@logger)).must_equal custom_logger
_(OpenTelemetry.logger.instance_variable_get(:@level)).must_equal Logger::INFO
_(OpenTelemetry.logger).must_be_instance_of(OpenTelemetry::SDK::ForwardingLogger)
end

Expand All @@ -62,6 +63,26 @@
_(log_stream.string).must_be_empty
end
end

it 'forwards log messages supplied as parameters' do
OpenTelemetry::TestHelpers.with_test_logger do |log_stream|
custom_logger = Logger.new(log_stream)
OpenTelemetry::SDK.configure { |c| c.logger = custom_logger }
message = 'The forwarding logger should forward this message'
OpenTelemetry.logger.info(message)
_(log_stream.string).must_include message
end
end

it 'forwards log messages supplied in blocks' do
OpenTelemetry::TestHelpers.with_test_logger do |log_stream|
custom_logger = Logger.new(log_stream)
OpenTelemetry::SDK.configure { |c| c.logger = custom_logger }
message = 'The forwarding logger should forward this message'
OpenTelemetry.logger.info { message }
_(log_stream.string).must_include message
end
end
end

describe '#resource=' do
Expand Down

0 comments on commit b1d6d05

Please sign in to comment.