Class: Foam::Ruby::OtelLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/foam/ruby/log_subscriber.rb

Overview

Logger subclass that forwards every #add call to OtelLogDevice. Designed to be broadcast-attached to Rails.logger, not used standalone. Does no level filtering — the parent BroadcastLogger already decided this message should be delivered.

Instance Method Summary collapse

Constructor Details

#initializeOtelLogger

Returns a new instance of OtelLogger.



56
57
58
59
# File 'lib/foam/ruby/log_subscriber.rb', line 56

def initialize
  super(NullLogDevice.new)
  @otel_device = OtelLogDevice.new
end

Instance Method Details

#add(severity, message = nil, progname = nil, &block) ⇒ Object



61
62
63
64
65
# File 'lib/foam/ruby/log_subscriber.rb', line 61

def add(severity, message = nil, progname = nil, &block)
  msg = message || (block ? block.call : progname)
  @otel_device.emit(severity || ::Logger::INFO, msg)
  true
end