Class: OpenTrace::LogForwarder
- Inherits:
-
Logger
- Object
- Logger
- OpenTrace::LogForwarder
- Defined in:
- lib/opentrace/log_forwarder.rb
Overview
Minimal Logger-compatible class that forwards log messages to OpenTrace. Designed to be used as a broadcast target with Rails 7.1+ BroadcastLogger. Does NOT wrap another logger — its only job is to forward to OpenTrace.
Constant Summary collapse
- SEVERITY_MAP =
{ ::Logger::DEBUG => "DEBUG", ::Logger::INFO => "INFO", ::Logger::WARN => "WARN", ::Logger::ERROR => "ERROR", ::Logger::FATAL => "FATAL", ::Logger::UNKNOWN => "UNKNOWN" }.freeze
Instance Method Summary collapse
- #add(severity, message = nil, progname = nil, &block) ⇒ Object
- #close ⇒ Object
-
#initialize ⇒ LogForwarder
constructor
A new instance of LogForwarder.
Constructor Details
#initialize ⇒ LogForwarder
Returns a new instance of LogForwarder.
19 20 21 22 23 24 25 26 27 |
# File 'lib/opentrace/log_forwarder.rb', line 19 def initialize super(nil) # Match OpenTrace's min_level so BroadcastLogger doesn't downgrade # the effective log level for the entire app. Without this, having # level=DEBUG here causes BroadcastLogger.level to drop to DEBUG, # which forces evaluation of all debug blocks and processing of all # debug messages across ALL broadcast targets — even in production. self.level = OpenTrace.config.logger_severity end |
Instance Method Details
#add(severity, message = nil, progname = nil, &block) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/opentrace/log_forwarder.rb', line 29 def add(severity, = nil, progname = nil, &block) severity ||= ::Logger::UNKNOWN return true if severity < level msg = (, progname, &block) return true if msg.nil? || (msg.is_a?(String) && msg.strip.empty?) level_str = SEVERITY_MAP.fetch(severity, "UNKNOWN") OpenTrace.log(level_str, msg.to_s) true rescue StandardError true end |
#close ⇒ Object
44 45 46 |
# File 'lib/opentrace/log_forwarder.rb', line 44 def close # no-op — nothing to close end |