@@ -154,6 +154,20 @@ defmodule MetadataLogger do
154154 timestamp: ~N[2019-11-22 12:23:45.000678]
155155 }
156156
157+ # use erl_level (available since Elixir 1.11)
158+ iex> MetadataLogger.log_to_map(
159+ ...> :warn,
160+ ...> [foo: 1, foo: 2],
161+ ...> {{2019, 11, 22}, {12, 23, 45, 678}},
162+ ...> [erl_level: :warning]
163+ ...> )
164+ %{
165+ level: :warning,
166+ message: %{foo: 2},
167+ metadata: %{},
168+ timestamp: ~N[2019-11-22 12:23:45.000678]
169+ }
170+
157171 """
158172 @ spec log_to_map (
159173 Logger . level ( ) ,
@@ -163,8 +177,10 @@ defmodule MetadataLogger do
163177 ) ::
164178 map ( )
165179 def log_to_map ( level , message , ts , metadata ) do
166- with m <- Enum . into ( metadata , % { } ) ,
167- m <- Map . drop ( m , [ :error_logger , :mfa , :report_cb ] ) ,
180+ m = Enum . into ( metadata , % { } )
181+ { level , m } = Map . pop ( m , :erl_level , level )
182+
183+ with m <- Map . drop ( m , [ :error_logger , :mfa , :report_cb ] ) ,
168184 { app , m } <- Map . pop ( m , :application ) ,
169185 { module , m } <- Map . pop ( m , :module ) ,
170186 { function , m } <- Map . pop ( m , :function ) ,
0 commit comments