Log::Metadata
Inherits Enumerable / Reference / Object
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".
Constructors
Returns a Metadata with the information of the argument.
Used to handle Log::Context#set and Log#Emitter.emit overloads.
Returns a Metadata with the information of the argument.
Used to handle Log::Context#set and Log#Emitter.emit overloads.
Class methods
Returns an empty Log::Metadata.
NOTE: Since Log::Metadata is immutable, it's safe to share this instance.
Instance methods
Returns a shallow copy of this object.
This allocates a new object and copies the contents of
self into it.
Returns true if self does not contain any element.
([] of Int32).empty? # => true
([1]).empty? # => false
[nil, false].empty? # => false
#present?returns the inverse.
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.
Returns Log::Metadata as JSON value.
NOTE: require "log/json" is required to opt-in to this feature.
log_entry.context.to_json # => "{\"user_id\":1}"