From cb2fd9db38e01acb67dc4e2e0fd9d76649649305 Mon Sep 17 00:00:00 2001 From: bbhoss Date: Wed, 11 Jan 2023 18:26:56 -0500 Subject: [PATCH] Add support for ports in Logger metadata (#12332) Resolves #12328 --- lib/logger/lib/logger/formatter.ex | 5 +++++ lib/logger/test/logger/formatter_test.exs | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/lib/logger/lib/logger/formatter.ex b/lib/logger/lib/logger/formatter.ex index 8736973dd8..31d664dde0 100644 --- a/lib/logger/lib/logger/formatter.ex +++ b/lib/logger/lib/logger/formatter.ex @@ -266,6 +266,11 @@ defmodule Logger.Formatter do rest end + defp metadata(_, port) when is_port(port) do + ~c"#Port" ++ rest = :erlang.port_to_list(port) + rest + end + defp metadata(:file, file) when is_list(file), do: file defp metadata(:domain, [head | tail]) when is_atom(head) do diff --git a/lib/logger/test/logger/formatter_test.exs b/lib/logger/test/logger/formatter_test.exs index 6daf8b8b3b..7415cd527f 100644 --- a/lib/logger/test/logger/formatter_test.exs +++ b/lib/logger/test/logger/formatter_test.exs @@ -68,6 +68,10 @@ defmodule Logger.FormatterTest do assert IO.chardata_to_string(format(compiled, :error, nil, nil, meta: :data, ref: ref)) == "meta=data ref=<0.0.0.80> " + port = :erlang.list_to_port(~c"#Port<0.1234>") + format = format(compiled, :error, nil, nil, meta: :data, port: port) + assert IO.chardata_to_string(format) == "meta=data port=<0.1234> " + # Also works with to_string format = format(compiled, :error, nil, nil, date: ~D[2020-10-01]) assert IO.chardata_to_string(format) == "date=2020-10-01 "