class Log::Metadata
inherits Reference
¶
Immutable structured metadata information for logging.
See Log.context
, Log.context=
, Log::Context#clear
, Log::Context#set
, Log.with_context
, and Log::Emitter
.
Note
If you'd like to format the context as JSON, remember to require "log/json"
.
Included modules
Enumerable
Class methods¶
.build(value : NamedTuple | Hash)
¶
(value : NamedTuple | Hash)
Returns a Metadata
with the information of the argument.
Used to handle Log::Context#set
and Log#Emitter.emit
overloads.
.build(value : Metadata)
¶
(value : Metadata)
Returns a Metadata
with the information of the argument.
Used to handle Log::Context#set
and Log#Emitter.emit
overloads.
.empty : Log::Metadata
¶
: Log::Metadata
Returns an empty Log::Metadata
.
Note
Since Log::Metadata
is immutable, it's safe to share this instance.
Methods¶
#each(& : Tuple(Symbol, Value) -> )
¶
(& : Tuple(Symbol, Value) -> )
Must yield this collection's elements to the block.
#empty?
¶
Returns true
if self
is empty, false
otherwise.
([] of Int32).empty? # => true
([1]).empty? # => false
#extend(other : NamedTuple | Hash) : Metadata
¶
(other : NamedTuple | Hash) : Metadata
Returns a Log::Metadata
with all the entries of self
and other. If a key is defined in both, the values in other are used.
#to_s(io : IO) : Nil
¶
(io : IO) : Nil
Appends a short String representation of this object which includes its class name and its object address.
class Person
def initialize(@name : String, @age : Int32)
end
end
Person.new("John", 32).to_s # => #<Person:0x10a199f20>