Class: EventTracer::BufferedLogger
- Inherits:
-
Object
- Object
- EventTracer::BufferedLogger
- Defined in:
- lib/event_tracer/buffered_logger.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#flush ⇒ Object
Flushes all remaining payloads in the buffer immediately.
-
#initialize(log_processor:, worker:, buffer: Buffer.new(buffer_size: 0)) ⇒ BufferedLogger
constructor
A new instance of BufferedLogger.
Constructor Details
#initialize(log_processor:, worker:, buffer: Buffer.new(buffer_size: 0)) ⇒ BufferedLogger
Returns a new instance of BufferedLogger.
7 8 9 10 11 |
# File 'lib/event_tracer/buffered_logger.rb', line 7 def initialize(log_processor:, worker:, buffer: Buffer.new(buffer_size: 0)) @buffer = buffer @worker = worker @log_processor = log_processor end |
Instance Method Details
#flush ⇒ Object
Flushes all remaining payloads in the buffer immediately. Intended to be called during shutdown to avoid losing buffered messages.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/event_tracer/buffered_logger.rb', line 21 def flush payloads = buffer.flush return LogResult.new(true) if payloads.nil? || payloads.empty? execute_payload(payloads) LogResult.new(true) rescue EventTracer::ErrorWithPayload => e EventTracer.warn( loggers: %i[base], action: self.class.name, app: EventTracer::Config.config.app_name, error: e.class.name, message: e., payload: e.payload ) LogResult.new(false, e) end |