class Log::Context
Overview
Immutable structured context information for logging.
See Log.context, Log.context=, Log::Context#clear, Log::Context#set, Log.with_context.
Defined in:
log/context.crlog/main.cr
Constructors
-
.new(hash : Hash(String, V)) forall V
Creates
Log::Contextfrom the given hash. -
.new(hash : Hash(Symbol, V)) forall V
Creates
Log::Contextfrom the given hash. -
.new(raw : Type)
Creates a
Crystalthat wraps the givenRaw. -
.new(tuple : NamedTuple)
Creates
Log::Contextfrom the given tuple. -
.new
Creates an empty
Log::Context.
Instance Method Summary
-
#==(other : self)
Returns
trueif bothselfand other's raw object are equal. -
#==(other)
Returns
trueif the raw object is equal to other. - #[](index_or_key) : self
- #[]?(index_or_key) : self?
-
#as_a : Array(self)
Checks that the underlying value is
Array(self), and returns its value. -
#as_a? : Array(self)?
Checks that the underlying value is
Array(self), and returns its value. -
#as_bool : Bool
Checks that the underlying value is
Bool, and returns its value. -
#as_bool? : Bool?
Checks that the underlying value is
Bool, and returns its value. -
#as_f : Float32
Checks that the underlying value is
Float32, and returns its value. -
#as_f64 : Float64
Checks that the underlying value is
Float64, and returns its value. -
#as_f64? : Float64?
Checks that the underlying value is
Float64, and returns its value. -
#as_f? : Float32?
Checks that the underlying value is
Float32, and returns its value. - #as_h : Hash(String, self)
- #as_h? : Hash(String, self)?
-
#as_i : Int32
Checks that the underlying value is
Int32, and returns its value. -
#as_i64 : Int64
Checks that the underlying value is
Int64, and returns its value. -
#as_i64? : Int64?
Checks that the underlying value is
Int64, and returns its value. -
#as_i? : Int32?
Checks that the underlying value is
Int32, and returns its value. -
#as_s : String
Checks that the underlying value is
String, and returns its value. -
#as_s? : String?
Checks that the underlying value is
String, and returns its value. -
#as_time : Time
Checks that the underlying value is
Time, and returns its value. -
#as_time? : Time?
Checks that the underlying value is
Time, and returns its value. -
#clear
Clears the current
Fiberlogging context. - #clone
-
#dig(index_or_key, *subkeys)
Traverses the depth of a structure and returns the value, otherwise raises.
-
#dig?(index_or_key, *subkeys)
Traverses the depth of a structure and returns the value.
- #dup
- #hash(hasher)
-
#merge(other : Context)
Returns a new
Log::Contextwith the keys and values of this context and other combined. -
#raw : Type
Returns the raw underlying value, a
Raw. -
#set(values : Hash(String, V)) forall V
Extends the current
Fiberlogging context. -
#set(values : Hash(Symbol, V)) forall V
Extends the current
Fiberlogging context. -
#set(values : NamedTuple)
Extends the current
Fiberlogging context. -
#set(**kwargs)
Extends the current
Fiberlogging context. - #size : Int
Instance methods inherited from class Reference
==(other : self)==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference)
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
new
new
Instance methods inherited from class Object
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(*values : Object) : Bool
in?(collection) : Bool in?, inspect : String
inspect(io : IO) : Nil inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO)
to_json to_json, to_pretty_json(io : IO, indent : String = " ")
to_pretty_json(indent : String = " ") to_pretty_json, to_s : String
to_s(io : IO) : Nil to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Constructor Detail
Creates Log::Context from the given hash.
Creates Log::Context from the given hash.
Instance Method Detail
Assumes the underlying value is an Array or Hash and returns the element
at the given index_or_key, or nil if out of bounds or the key is missing.
Checks that the underlying value is Hash(String, self), and returns its value.
Returns nil otherwise.
Clears the current Fiber logging context.
Log.context.clear
Log.info { "message with empty context" }
Traverses the depth of a structure and returns the value, otherwise raises.
Traverses the depth of a structure and returns the value.
Returns nil if not found.
Returns a new Log::Context with the keys and values of this context and other combined.
A value in other takes precedence over the one in this context.
Extends the current Fiber logging context.
Log.context.set a: 1
Log.context.set b: 2
Log.info { %q(message with {"a" => 1, "b" => 2} context") }
extra = {:c => "3"}
Log.context.set extra
Log.info { %q(message with {"a" => 1, "b" => 2, "c" => "3" } context) }
extra = {"c" => 3}
Log.context.set extra
Log.info { %q(message with {"a" => 1, "b" => 2, "c" => 3 } context) }
Extends the current Fiber logging context.
Log.context.set a: 1
Log.context.set b: 2
Log.info { %q(message with {"a" => 1, "b" => 2} context") }
extra = {:c => "3"}
Log.context.set extra
Log.info { %q(message with {"a" => 1, "b" => 2, "c" => "3" } context) }
extra = {"c" => 3}
Log.context.set extra
Log.info { %q(message with {"a" => 1, "b" => 2, "c" => 3 } context) }
Extends the current Fiber logging context.
Log.context.set a: 1
Log.context.set b: 2
Log.info { %q(message with {"a" => 1, "b" => 2} context") }
extra = {:c => "3"}
Log.context.set extra
Log.info { %q(message with {"a" => 1, "b" => 2, "c" => "3" } context) }
extra = {"c" => 3}
Log.context.set extra
Log.info { %q(message with {"a" => 1, "b" => 2, "c" => 3 } context) }
Extends the current Fiber logging context.
Log.context.set a: 1
Log.context.set b: 2
Log.info { %q(message with {"a" => 1, "b" => 2} context") }
extra = {:c => "3"}
Log.context.set extra
Log.info { %q(message with {"a" => 1, "b" => 2, "c" => "3" } context) }
extra = {"c" => 3}
Log.context.set extra
Log.info { %q(message with {"a" => 1, "b" => 2, "c" => 3 } context) }