Skip to content

Commit 51ac9bc

Browse files
committed
Accept any enumerable in Logger.metadata/1
1 parent c8f8d02 commit 51ac9bc

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
@@ -585,24 +585,24 @@ defmodule Logger do
585585
end
586586

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

603603
map when is_map(map) ->
604604
metadata =
605-
Enum.reduce(keyword, map, fn
605+
Enum.reduce(enumerable, map, fn
606606
{k, nil}, acc -> Map.delete(acc, k)
607607
{k, v}, acc -> Map.put(acc, k, v)
608608
end)
@@ -626,11 +626,11 @@ defmodule Logger do
626626
end
627627

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

636636
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)