Skip to content

Commit 59910ae

Browse files
author
José Valim
committed
Add flush to Logger.add_backend/2
1 parent 69b4748 commit 59910ae

File tree

5 files changed

+13
-13
lines changed

5 files changed

+13
-13
lines changed

lib/elixir/test/elixir/gen_event_test.exs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,7 @@ defmodule GenEventTest do
9898
assert GenEvent.which_handlers(pid) == []
9999
assert GenEvent.stop(pid) == :ok
100100
after
101-
:gen_event.which_handlers(:error_logger)
102-
Logger.add_backend(:console)
101+
Logger.add_backend(:console, flush: true)
103102
end
104103

105104
test "sync stream/2" do

lib/elixir/test/elixir/task/supervisor_test.exs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@ defmodule Task.SupervisorTest do
1010

1111
setup do
1212
Logger.remove_backend(:console)
13-
on_exit fn ->
14-
:gen_event.which_handlers(:error_logger)
15-
Logger.add_backend(:console)
16-
end
13+
on_exit fn -> Logger.add_backend(:console, flush: true) end
1714
:ok
1815
end
1916

lib/elixir/test/elixir/task_test.exs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ defmodule TaskTest do
55

66
setup do
77
Logger.remove_backend(:console)
8-
on_exit fn ->
9-
:gen_event.which_handlers(:error_logger)
10-
Logger.add_backend(:console)
11-
end
8+
on_exit fn -> Logger.add_backend(:console, flush: true) end
129
:ok
1310
end
1411

lib/logger/lib/logger.ex

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,8 +338,16 @@ defmodule Logger do
338338

339339
@doc """
340340
Adds a new backend.
341+
342+
## Options
343+
344+
* `:flush` - when true, guarantees all messages currently sent
345+
to both Logger and Erlang's `error_logger` are processed before
346+
the backend is added
347+
341348
"""
342-
def add_backend(backend) do
349+
def add_backend(backend, opts \\ []) do
350+
_ = if opts[:flush], do: GenEvent.which_handlers(:error_logger)
343351
Logger.Watcher.watch(Logger, translate_backend(backend), [])
344352
end
345353

lib/mix/test/mix/tasks/app.start_test.exs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ defmodule Mix.Tasks.App.StartTest do
2828
on_exit fn ->
2929
:application.stop(app)
3030
:application.unload(app)
31-
:gen_event.which_handlers(:error_logger)
32-
Logger.add_backend(:console)
31+
Logger.add_backend(:console, flush: true)
3332
end
3433
end
3534

0 commit comments

Comments
 (0)