Method: LogStashLogger::Buffer#buffer_initialize
- Defined in:
- lib/logstash-logger/buffer.rb
#buffer_initialize(options = {}) ⇒ Object
Initialize the buffer.
Call directly from your constructor if you wish to set some non-default options. Otherwise buffer_initialize will be called automatically during the first buffer_receive call.
Options:
-
:max_items, Max number of items to buffer before flushing. Default 50.
-
:max_interval, Max number of seconds to wait between flushes. Default 5.
-
:logger, A logger to write log messages to. No default. Optional.
-
:autoflush, Whether to immediately flush all inbound messages. Default true.
-
:drop_messages_on_flush_error, Whether to drop messages when there is a flush error. Default false.
-
:drop_messages_on_full_buffer, Whether to drop messages when the buffer is full. Default false.
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/logstash-logger/buffer.rb', line 85 def buffer_initialize(={}) if ! self.class.method_defined?(:flush) raise ArgumentError, "Any class including Stud::Buffer must define a flush() method." end @buffer_config = { :max_items => [:max_items] || 50, :max_interval => [:max_interval] || 5, :logger => [:logger] || nil, :autoflush => .fetch(:autoflush, true), :has_on_flush_error => self.class.method_defined?(:on_flush_error), :has_on_full_buffer_receive => self.class.method_defined?(:on_full_buffer_receive), :drop_messages_on_flush_error => .fetch(:drop_messages_on_flush_error, false), :drop_messages_on_full_buffer => .fetch(:drop_messages_on_full_buffer, false), :flush_at_exit => .fetch(:flush_at_exit, false) } if @buffer_config[:flush_at_exit] at_exit { buffer_flush(final: true) } end reset_buffer end |