Skip to content

Commit 6d524a5

Browse files
authored
Format metadata[:file] as string in Formatters.Basic (#159)
Erlang passes `metadata[:file]` as a charlist, which is passed as is by `Basic` formatter. In this PR I changed `Basic` formatter to output the file as a string. Resolves #158.
1 parent 6e0b5ca commit 6d524a5

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

lib/logger_json/formatters/basic.ex

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,17 @@ defmodule LoggerJSON.Formatters.Basic do
5656
crash: &format_crash_reason(&1, &2, meta)
5757
})
5858

59+
metadata =
60+
meta
61+
|> take_metadata(metadata_selector)
62+
|> maybe_update(:file, &IO.chardata_to_string/1)
63+
5964
line =
6065
%{
6166
time: utc_time(meta),
6267
severity: Atom.to_string(level),
6368
message: encode(message, redactors),
64-
metadata: encode(take_metadata(meta, metadata_selector), redactors)
69+
metadata: encode(metadata, redactors)
6570
}
6671
|> maybe_put(:request, format_http_request(meta))
6772
|> maybe_put(:span, format_span(meta))

test/logger_json/formatters/basic_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ defmodule LoggerJSON.Formatters.BasicTest do
124124
|> decode_or_print_error()
125125
|> Map.get("metadata")
126126

127-
assert metadata |> Map.get("file") |> to_string() =~ "logger_json/formatters/basic_test.exs"
127+
assert metadata |> Map.get("file") =~ "logger_json/formatters/basic_test.exs"
128128
assert metadata |> Map.get("line") |> is_integer()
129129

130130
assert metadata["mfa"] === "Elixir.LoggerJSON.Formatters.BasicTest.test logs file, line and mfa as metadata/1"

0 commit comments

Comments
 (0)