Log::StaticFormatter
Base implementation of Log::Formatter to convert
log entries into text representation
This can be used to create efficient formatters:
require "log"
struct MyFormat < Log::StaticFormatter
def run
string "- "
severity
string ": "
message
end
end
Log.setup(:info, Log::IOBackend.new(formatter: MyFormat))
Log.info { "Hello" } # => - INFO: Hello
Log.error { "Oh, no!" } # => - ERROR: Oh, no!
There is also a helper macro to generate these formatters. Here's an example that generates the same result:
Log.define_formatter MyFormat, "- #{severity}: #{message}"
Constructors
Class methods
Instance methods
Write all the values from the context
It doesn't write any output if the context is empty.
Parameters before and after can be provided to be written around
the value.
Write all the values from the entry data
It doesn't write any output if the entry data is empty.
Parameters before and after can be provided to be written around
the value.
Write the exception, including backtrace
It doesn't write any output unless there is an exception in the entry.
Parameters before and after can be provided to be written around
the value. before defaults to '\n' so the exception is written
on a separate line
Write the severity
This writes the severity in uppercase and left padded with enough space so all the severities fit
Write the source for non-root entries
It doesn't write any output for entries generated from the root logger.
Parameters before and after can be provided to be written around
the value.
Log.define_formatter TestFormatter, "#{source(before: '[', after: "] ")}#{message}"
Log.setup(:info, Log::IOBackend.new(formatter: TestFormatter))
Log.for("foo.bar").info { "Hello" } # => - [foo.bar] Hello