abstract struct Log::StaticFormatter
- Log::StaticFormatter
- Struct
- Value
- Object
Overview
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}"
Extended Modules
- Log::Formatter
Defined in:
launcher/log-patch.crConstructors
Class Method Summary
Instance Method Summary
-
#exception(*, before = '\n', after = nil)
Write the exception, including backtrace
-
#message
Write the message of the entry
-
#severity
Write the severity
-
#source(*, before = nil, after = nil)
Write the source for non-root entries
-
#timestamp
Write the entry timestamp in RFC3339 format
Constructor Detail
Class Method Detail
Instance Method Detail
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