Packages
timber
3.1.1
3.1.2
3.1.1
3.1.0
3.0.0
3.0.0-alpha.3
3.0.0-alpha.2
3.0.0-alpha.1
2.8.4
2.8.3
2.8.2
2.8.1
2.8.0
2.7.0
2.6.1
2.6.0
2.5.6
2.5.5
2.5.4
2.5.3
2.5.2
2.5.1
2.5.0
2.4.5
2.4.4
2.4.3
2.4.2
2.4.1
2.4.0
2.3.4
2.3.3
2.3.1
2.3.0
2.2.1
2.2.0
2.1.8
2.1.7
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
2.0.0-rc7
2.0.0-rc6
2.0.0-rc5
2.0.0-rc4
2.0.0-rc3
2.0.0-rc2
2.0.0-rc1
1.1.18
1.1.17
1.1.16
1.1.15
1.1.14
1.1.13
1.1.12
1.1.11
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
🌲 Great Elixir Logging Made Easy. Official Timber.io Integration.
Current section
Files
Jump to
Current section
Files
lib/timber/context.ex
defmodule Timber.Context do
@moduledoc false
# Most users will not interact directly with this module and will instead use
# the helper functions provided by the main `Timber` module. See the `Timber`
# module for more information.
#
# The functions in this module work to modify the context data structure. This
# module provides us the flexibility to change the context data structure and
# change how it is modified.
alias Timber.Contextable
#
# Typespecs
#
@typedoc """
Map represeting context
"""
@type t :: map
#
# API
#
@doc false
@spec new :: t
def new(),
do: %{}
@doc false
@deprecated "Please use Timber.Context.merge/2 instead"
def add(context, contextable) do
merge(context, contextable)
end
@doc """
Removes a key from the provided context structure.
"""
@spec delete(t, atom) :: t
def delete(context, key) do
Map.delete(context, key)
end
@doc """
Takes an existing context element and inserts it into the provided context.
"""
@spec merge(t, Contextable.t()) :: t
def merge(context, nil),
do: context
def merge(context, contextable) do
additional_context = Contextable.to_context(contextable)
Map.merge(context, additional_context)
end
end