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::Context
from the given hash. -
.new(hash : Hash(Symbol, V)) forall V
Creates
Log::Context
from the given hash. -
.new(raw : Type)
Creates a
Crystal
that wraps the givenRaw
. -
.new(tuple : NamedTuple)
Creates
Log::Context
from the given tuple. -
.new
Creates an empty
Log::Context
.
Instance Method Summary
-
#==(other : self)
Returns
true
if bothself
and other's raw object are equal. -
#==(other)
Returns
true
if 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
Fiber
logging 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::Context
with 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
Fiber
logging context. -
#set(values : Hash(Symbol, V)) forall V
Extends the current
Fiber
logging context. -
#set(values : NamedTuple)
Extends the current
Fiber
logging context. -
#set(**kwargs)
Extends the current
Fiber
logging 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) }