Class: JsonLogging::EventSubscriber
- Inherits:
-
Object
- Object
- JsonLogging::EventSubscriber
- Defined in:
- lib/json_logging/event_subscriber.rb,
sig/json_logging.rbs
Overview
Opt-in subscriber for ActiveSupport::EventReporter (Rails 8.1+). Preserves the Rails event hash shape as a single JSON line.
Instance Method Summary collapse
- #emit(event) ⇒ void
-
#initialize(logger: nil, io: nil) ⇒ EventSubscriber
constructor
A new instance of EventSubscriber.
Constructor Details
#initialize(logger: nil, io: nil) ⇒ EventSubscriber
Returns a new instance of EventSubscriber.
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/json_logging/event_subscriber.rb', line 5 def initialize(logger: nil, io: nil) if !logger.nil? && !io.nil? raise ArgumentError, "JsonLogging::EventSubscriber accepts only one of logger: or io:" end if logger.nil? && io.nil? raise ArgumentError, "JsonLogging::EventSubscriber requires logger: or io:" end @logger = logger @io = io end |
Instance Method Details
#emit(event) ⇒ void
This method returns an undefined value.
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/json_logging/event_subscriber.rb', line 17 def emit(event) line = begin encode_event(event) rescue => error encode_fallback(event, error) end write_line(line) rescue => error report_write_error(error) nil end |