Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f9dbdb8

Browse files
committed
Accept any enumerable in Logger.metadata/1
1 parent e2f6bba commit f9dbdb8

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

lib/logger/lib/logger.ex

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -586,24 +586,24 @@ defmodule Logger do
586586
end
587587

588588
@doc """
589-
Alters the current process metadata according to the given keyword list.
589+
Alters the current process metadata according to the given enumerable.
590590
591-
This function will merge the given keyword list into the existing metadata,
591+
This function will merge the given enumerable into the existing metadata,
592592
with the exception of setting a key to `nil`, which will remove that key
593593
from the metadata.
594594
595595
Note some metadata keys are reserved and cannot be overridden. See
596596
[the module documentation](#module-metadata) for more information.
597597
"""
598-
@spec metadata(metadata) :: :ok
599-
def metadata(keyword) do
598+
@spec metadata(Enumerable.t({atom(), term()})) :: :ok
599+
def metadata(enumerable) do
600600
case :logger.get_process_metadata() do
601601
:undefined ->
602-
reset_metadata(keyword)
602+
reset_metadata(enumerable)
603603

604604
map when is_map(map) ->
605605
metadata =
606-
Enum.reduce(keyword, map, fn
606+
Enum.reduce(enumerable, map, fn
607607
{k, nil}, acc -> Map.delete(acc, k)
608608
{k, v}, acc -> Map.put(acc, k, v)
609609
end)
@@ -627,11 +627,11 @@ defmodule Logger do
627627
end
628628

629629
@doc """
630-
Resets the current process metadata to the given keyword list.
630+
Resets the current process metadata to the given enumerable.
631631
"""
632-
@spec reset_metadata(metadata) :: :ok
633-
def reset_metadata(keyword \\ []) do
634-
:ok = :logger.set_process_metadata(filter_out_nils(keyword))
632+
@spec reset_metadata(Enumerable.t({atom(), term()})) :: :ok
633+
def reset_metadata(enumerable \\ []) do
634+
:ok = :logger.set_process_metadata(filter_out_nils(enumerable))
635635
end
636636

637637
defp filter_out_nils(keyword) do

lib/logger/test/logger_test.exs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -190,15 +190,14 @@ defmodule LoggerTest do
190190
assert Logger.metadata() == [data: true]
191191
assert Logger.metadata(data: true) == :ok
192192
assert Logger.metadata() == [data: true]
193-
assert Logger.metadata(meta: 1) == :ok
194-
metadata = Logger.metadata()
195-
assert Enum.sort(metadata) == [data: true, meta: 1]
196-
assert Logger.metadata(data: nil) == :ok
193+
assert Logger.metadata(%{meta: 1}) == :ok
194+
assert Enum.sort(Logger.metadata()) == [data: true, meta: 1]
195+
assert Logger.metadata(%{data: nil}) == :ok
197196
assert Logger.metadata() == [meta: 1]
198197

199198
assert Logger.reset_metadata(meta: 2) == :ok
200199
assert Logger.metadata() == [meta: 2]
201-
assert Logger.reset_metadata(data: true, app: nil) == :ok
200+
assert Logger.reset_metadata(%{data: true, app: nil}) == :ok
202201
assert Logger.metadata() == [data: true]
203202
assert Logger.reset_metadata() == :ok
204203
assert Logger.metadata() == []

0 commit comments

Comments
 (0)