@@ -62,7 +62,7 @@ defmodule LoggerTest do
62
62
Logger . add_backend ( { UnknownBackend , :hello } )
63
63
end
64
64
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
66
66
assert { :ok , _ } = Logger . add_backend ( { MyBackend , :hello } )
67
67
68
68
assert capture_log ( fn ->
@@ -86,6 +86,32 @@ defmodule LoggerTest do
86
86
Logger . add_backend ( :console )
87
87
end
88
88
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
+
89
115
test "level/0" do
90
116
assert Logger . level ( ) == :debug
91
117
0 commit comments