@@ -62,7 +62,7 @@ defmodule LoggerTest do
6262 Logger . add_backend ( { UnknownBackend , :hello } )
6363 end
6464
65- test "logs or writes to stderr on failed backends " do
65+ test "logs or writes to stderr on failed call on async mode " do
6666 assert { :ok , _ } = Logger . add_backend ( { MyBackend , :hello } )
6767
6868 assert capture_log ( fn ->
@@ -86,6 +86,32 @@ defmodule LoggerTest do
8686 Logger . add_backend ( :console )
8787 end
8888
89+ test "logs or writes to stderr on failed call on sync mode" do
90+ Logger . configure ( sync_threshold: 0 )
91+ assert { :ok , _ } = Logger . add_backend ( { MyBackend , :hello } )
92+
93+ assert capture_log ( fn ->
94+ :gen_event . call ( Logger , { MyBackend , :hello } , :error )
95+ wait_for_handler ( Logger , { MyBackend , :hello } )
96+ end ) =~
97+ ":gen_event handler {LoggerTest.MyBackend, :hello} installed in Logger terminating"
98+
99+ assert :ok = Logger . remove_backend ( :console )
100+
101+ assert ExUnit.CaptureIO . capture_io ( :stderr , fn ->
102+ :gen_event . call ( Logger , { MyBackend , :hello } , :error )
103+ wait_for_handler ( Logger , { MyBackend , :hello } )
104+ end ) =~
105+ ":gen_event handler {LoggerTest.MyBackend, :hello} installed in Logger terminating"
106+
107+ # Flush logs before reattaching to avoid OTP reports
108+ Logger . flush ( )
109+ after
110+ Logger . configure ( sync_threshold: 20 )
111+ Logger . remove_backend ( { MyBackend , :hello } )
112+ Logger . add_backend ( :console )
113+ end
114+
89115 test "level/0" do
90116 assert Logger . level ( ) == :debug
91117
0 commit comments