Skip to content

Commit 2af0411

Browse files
Print Erlang levels in :console backend (#11304)
1 parent c3f555a commit 2af0411

File tree

6 files changed

+40
-21
lines changed

6 files changed

+40
-21
lines changed

lib/ex_unit/test/ex_unit/capture_log_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,14 @@ defmodule ExUnit.CaptureLogTest do
7373

7474
assert logged
7575
assert logged =~ "[info] one\n"
76-
assert logged =~ "[warn] two\n"
76+
assert logged =~ "[warning] two\n"
7777
assert logged =~ "[debug] three\n"
7878
assert logged =~ "[error] one\n"
7979

8080
receive do
8181
{:nested, logged} ->
8282
assert logged =~ "[error] one\n"
83-
refute logged =~ "[warn] two\n"
83+
refute logged =~ "[warning] two\n"
8484
end
8585
end
8686

lib/logger/lib/logger/backends/console.ex

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ defmodule Logger.Backends.Console do
138138
def handle_event({level, _gl, {Logger, msg, ts, md}}, state) do
139139
%{level: log_level, ref: ref, buffer_size: buffer_size, max_buffer: max_buffer} = state
140140

141+
{:erl_level, level} = List.keyfind(md, :erl_level, 0, {:erl_level, level})
142+
141143
cond do
142144
not meet_level?(level, log_level) ->
143145
{:ok, state}
@@ -232,10 +234,14 @@ defmodule Logger.Backends.Console do
232234
colors = Keyword.get(config, :colors, [])
233235

234236
%{
235-
debug: Keyword.get(colors, :debug, :cyan),
236-
info: Keyword.get(colors, :info, :normal),
237-
warn: Keyword.get(colors, :warn, :yellow),
237+
emergency: Keyword.get(colors, :error, :red),
238+
alert: Keyword.get(colors, :error, :red),
239+
critical: Keyword.get(colors, :error, :red),
238240
error: Keyword.get(colors, :error, :red),
241+
warning: Keyword.get(colors, :warn, :yellow),
242+
notice: Keyword.get(colors, :info, :normal),
243+
info: Keyword.get(colors, :info, :normal),
244+
debug: Keyword.get(colors, :debug, :cyan),
239245
enabled: Keyword.get(colors, :enabled, IO.ANSI.enabled?())
240246
}
241247
end

lib/logger/lib/logger/formatter.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,10 @@ defmodule Logger.Formatter do
163163
defp output(:levelpad, level, _, _, _), do: levelpad(level)
164164
defp output(other, _, _, _, _), do: other
165165

166-
defp levelpad(:debug), do: ""
166+
# TODO: Deprecate me on Elixir v1.13+ or later
167167
defp levelpad(:info), do: " "
168168
defp levelpad(:warn), do: " "
169-
defp levelpad(:error), do: ""
169+
defp levelpad(_), do: ""
170170

171171
defp metadata([{key, value} | metadata]) do
172172
if formatted = metadata(key, value) do

lib/logger/test/logger/backends/console_test.exs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,18 @@ defmodule Logger.Backends.ConsoleTest do
129129
assert capture_log(fn -> Logger.debug("hello") end) == ""
130130
end
131131

132+
test "filter by notice" do
133+
Logger.configure_backend(:console, level: :notice)
134+
135+
assert capture_log(fn -> Logger.debug("hello") end) == ""
136+
assert capture_log(fn -> Logger.info("hello") end) == ""
137+
assert capture_log(fn -> Logger.notice("hello") end) =~ "[notice] hello\n"
138+
assert capture_log(fn -> Logger.warning("hello") end) =~ "[warning] hello\n"
139+
assert capture_log(fn -> Logger.critical("hello") end) =~ "[critical] hello\n"
140+
assert capture_log(fn -> Logger.alert("hello") end) =~ "[alert] hello\n"
141+
assert capture_log(fn -> Logger.error("hello") end) =~ "[error] hello\n"
142+
end
143+
132144
test "configures colors" do
133145
Logger.configure_backend(:console, format: "$message", colors: [enabled: true])
134146

lib/logger/test/logger/handler_test.exs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ defmodule Logger.HandlerTest do
3737

3838
assert capture_log(fn ->
3939
:error_logger.info_msg('world: ~p', [:ok])
40-
end) =~ "[info] rewritten"
40+
end) =~ "[notice] rewritten"
4141
after
4242
assert Logger.remove_translator({CustomTranslator, :t})
4343
end
@@ -97,12 +97,13 @@ defmodule Logger.HandlerTest do
9797
end) =~ "[info] :formatted"
9898
end
9999

100-
test "converts log levels" do
101-
assert capture_log(fn -> :logger.emergency('ok') end) =~ "[error] ok"
102-
assert capture_log(fn -> :logger.alert('ok') end) =~ "[error] ok"
103-
assert capture_log(fn -> :logger.critical('ok') end) =~ "[error] ok"
100+
test "uses Erlang log levels" do
101+
assert capture_log(fn -> :logger.emergency('ok') end) =~ "[emergency] ok"
102+
assert capture_log(fn -> :logger.alert('ok') end) =~ "[alert] ok"
103+
assert capture_log(fn -> :logger.critical('ok') end) =~ "[critical] ok"
104104
assert capture_log(fn -> :logger.error('ok') end) =~ "[error] ok"
105-
assert capture_log(fn -> :logger.warning('ok') end) =~ "[warn] ok"
105+
assert capture_log(fn -> :logger.warning('ok') end) =~ "[warning] ok"
106+
assert capture_log(fn -> :logger.notice('ok') end) =~ "[notice] ok"
106107
assert capture_log(fn -> :logger.info('ok') end) =~ "[info] ok"
107108
assert capture_log(fn -> :logger.debug('ok') end) =~ "[debug] ok"
108109
end

lib/logger/test/logger_test.exs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -408,15 +408,15 @@ defmodule LoggerTest do
408408
test "deprecated :warn" do
409409
assert capture_log(fn ->
410410
Logger.warn("hello") == :ok
411-
end) =~ "[warn]"
411+
end) =~ "[warning]"
412412

413413
assert capture_log(fn ->
414414
Logger.log(:warn, "hello") == :ok
415-
end) =~ "[warn]"
415+
end) =~ "[warning]"
416416

417417
assert capture_log(fn ->
418418
Logger.bare_log(:warn, "hello") == :ok
419-
end) =~ "[warn]"
419+
end) =~ "[warning]"
420420
end
421421

422422
describe "levels" do
@@ -451,7 +451,7 @@ defmodule LoggerTest do
451451
test "warning/2" do
452452
assert capture_log(fn ->
453453
assert Logger.warning("hello", []) == :ok
454-
end) =~ msg_with_meta("[warn] hello")
454+
end) =~ msg_with_meta("[warning] hello")
455455

456456
assert capture_log(:error, fn ->
457457
assert Logger.warning("hello", []) == :ok
@@ -465,7 +465,7 @@ defmodule LoggerTest do
465465
test "warn/2" do
466466
assert capture_log(fn ->
467467
assert Logger.warn("hello", []) == :ok
468-
end) =~ msg_with_meta("[warn] hello")
468+
end) =~ msg_with_meta("[warning] hello")
469469

470470
assert capture_log(:error, fn ->
471471
assert Logger.warn("hello", []) == :ok
@@ -493,7 +493,7 @@ defmodule LoggerTest do
493493
test "critical/2" do
494494
assert capture_log(fn ->
495495
assert Logger.critical("hello", []) == :ok
496-
end) =~ msg_with_meta("[error] hello")
496+
end) =~ msg_with_meta("[critical] hello")
497497

498498
assert capture_log(:alert, fn ->
499499
assert Logger.critical("hello", []) == :ok
@@ -507,7 +507,7 @@ defmodule LoggerTest do
507507
test "alert/2" do
508508
assert capture_log(fn ->
509509
assert Logger.alert("hello", []) == :ok
510-
end) =~ msg_with_meta("[error] hello")
510+
end) =~ msg_with_meta("[alert] hello")
511511

512512
assert capture_log(:emergency, fn ->
513513
assert Logger.alert("hello", []) == :ok
@@ -521,7 +521,7 @@ defmodule LoggerTest do
521521
test "emergency/2" do
522522
assert capture_log(fn ->
523523
assert Logger.emergency("hello", []) == :ok
524-
end) =~ msg_with_meta("[error] hello")
524+
end) =~ msg_with_meta("[emergency] hello")
525525

526526
assert capture_log(:none, fn ->
527527
assert Logger.emergency("hello", []) == :ok

0 commit comments

Comments
 (0)