Class: EventLoggerRails::Emitter
- Inherits:
-
Object
- Object
- EventLoggerRails::Emitter
- Defined in:
- lib/event_logger_rails/emitter.rb
Overview
Processes events, sending data to logger.
Instance Method Summary collapse
-
#initialize ⇒ Emitter
constructor
Initializes the emitter.
-
#log(event, level:, data: {}) ⇒ Integer
Validates and logs an event with the given level and data.
Constructor Details
#initialize ⇒ Emitter
Initializes the emitter. It references the configured log device for log output. It references the configured logger class for logging, falling back to EventLogger.
9 10 11 12 |
# File 'lib/event_logger_rails/emitter.rb', line 9 def initialize logdev = EventLoggerRails.logdev @logger = EventLoggerRails.logger_class.constantize.new(logdev) || EventLoggerRails::EventLogger.new(logdev) end |
Instance Method Details
#log(event, level:, data: {}) ⇒ Integer
Note:
Prefer to use the public API provided by ‘EventLoggerRails.log()`.
Validates and logs an event with the given level and data. If an error is raised, it recursively calls itself with the error’s event.
25 26 27 28 29 30 31 32 33 |
# File 'lib/event_logger_rails/emitter.rb', line 25 def log(event, level:, data: {}) Event.new(event).validate! do |validated_event| = Message.new(event: validated_event, data:) level = level || validated_event.level || EventLoggerRails.default_level (, level.to_sym) end rescue Exceptions::UnregisteredEvent, Exceptions::InvalidLoggerLevel => error log(error.event, level: :error, data: { message: error. }) end |