Base implementation of Log::Formatter
to convert log entries into text representation
This can be used to create efficient formatters:
struct MyFormat < Log::StaticFormat 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}"
Write the Log::Entry
to the IO
using this pattern
Write all the values from the context
Write all the values from the entry data
Write the exception, including backtrace
Write the message of the entry
Write the current process identifier
Write the program name.
Subclasses must implement this method to define the output pattern
Write the severity
Write the source for non-root entries
Write a fixed string
Write the entry timestamp in RFC3339 format
Struct
Value
Object
Object
Write the Log::Entry
to the IO
using this pattern
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 message of the entry
Write the current process identifier
Write the program name. See Log.progname
.
Subclasses must implement this method to define the output pattern
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.
source(before: '[', after: ']') # => [http.server]
Write a fixed string
Write the entry timestamp in RFC3339 format
© 2012–2020 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.35.1/Log/StaticFormatter.html