Module | Logging::Appenders::Buffering |
In: |
lib/logging/appenders/buffering.rb
|
The Buffering module is used to implement buffering of the log messages in a given appender. The size of the buffer can be specified, and the buffer can be configured to auto-flush at a given threshold. The threshold can be a single message or a very large number of messages.
Log messages of a certain level can cause the buffer to be flushed immediately. If an error occurs, all previous messages and the error message will be written immediately to the logging destination if the buffer is configured to do so.
DEFAULT_BUFFER_SIZE | = | 500; | Default buffer size |
auto_flushing | [R] | The auto-flushing setting. When the buffer reaches this size, all messages will be be flushed automatically. |
buffer | [R] | The buffer holding the log messages |
Configure the auto-flushing period. Auto-flushing is used to flush the contents of the logging buffer to the logging destination automatically when the buffer reaches a certain threshold.
By default, the auto-flushing will be configured to flush after each log message.
The allowed settings are as follows:
N : flush after every N messages (N is an integer) true : flush after each log message false OR nil OR 0 : only flush when the buffer is full (500 messages)
If the default buffer size of 500 is too small, you can manuall configure to be as large as you want. This will consume more memory.
auto_flushing = 42_000
This message must be implemented by the including class. The method should write the contents of the buffer to the logging destination, and it should clear the buffer when done.
Configure the levels that will trigger and immediate flush of the logging buffer. When a log event of the given level is seen, the buffer will be flushed immediately. Only the levels explicitly given in this assignment will flush the buffer; if an "error" message is configured to immediately flush the buffer, a "fatal" message will not even though it is a higher level. Both must be explicitly passed to this assignment.
You can pass in a single leveal name or number, and array of level names or numbers, or a string containg a comma separated list of level names or numbers.
immediate_at = :error immediate_at = [:error, :fatal] immediate_at = "warn, error"
Append the given event to the message buffer. The event can be either a string or a LogEvent object.
Configure the buffering using the arguments found in the give options hash. This method must be called in order to use the message buffer. The supported options are "immediate_at" and "auto_flushing". Please refer to the documentation for those methods to see the allowed options.