@@ -63,26 +63,35 @@ set_log_level(Level) ->
6363set_log_level (true , Level ) ->
6464 SinksAndHandlers = [{Sink , gen_event :which_handlers (Sink )} ||
6565 Sink <- lager :list_all_sinks ()],
66- set_sink_log_level (SinksAndHandlers , Level );
66+ DefaultHwm = application :get_env (lager , error_logger_hwm_original , 50 ),
67+ Hwm = case Level of
68+ debug -> DefaultHwm * 100 ;
69+ _ -> DefaultHwm
70+ end ,
71+ application :set_env (lager , error_logger_hwm , Hwm ),
72+ set_sink_log_level (SinksAndHandlers , Level , Hwm );
6773set_log_level (_ , Level ) ->
6874 {error , {invalid_log_level , Level }}.
6975
70- set_sink_log_level ([], _Level ) ->
76+ set_sink_log_level ([], _Level , _Hwm ) ->
7177 ok ;
72- set_sink_log_level ([{Sink , Handlers }|Rest ], Level ) ->
73- set_sink_handler_log_level (Sink , Handlers , Level ),
74- set_sink_log_level (Rest , Level ).
78+ set_sink_log_level ([{Sink , Handlers }|Rest ], Level , Hwm ) ->
79+ set_sink_handler_log_level (Sink , Handlers , Level , Hwm ),
80+ set_sink_log_level (Rest , Level , Hwm ).
7581
76- set_sink_handler_log_level (_Sink , [], _Level ) ->
82+ set_sink_handler_log_level (_Sink , [], _Level , _Hwm ) ->
7783 ok ;
78- set_sink_handler_log_level (Sink , [Handler |Rest ], Level ) when is_atom (Handler ) ->
84+ set_sink_handler_log_level (Sink , [Handler |Rest ], Level , Hwm )
85+ when is_atom (Handler ) andalso is_integer (Hwm ) ->
86+ lager :set_loghwm (Sink , Handler , undefined , Hwm ),
7987 ok = lager :set_loglevel (Sink , Handler , undefined , Level ),
80- set_sink_handler_log_level (Sink , Rest , Level );
81- set_sink_handler_log_level (Sink , [{Handler , Id }|Rest ], Level ) ->
88+ set_sink_handler_log_level (Sink , Rest , Level , Hwm );
89+ set_sink_handler_log_level (Sink , [{Handler , Id }|Rest ], Level , Hwm ) ->
90+ lager :set_loghwm (Sink , Handler , Id , Hwm ),
8291 ok = lager :set_loglevel (Sink , Handler , Id , Level ),
83- set_sink_handler_log_level (Sink , Rest , Level );
84- set_sink_handler_log_level (Sink , [_ |Rest ], Level ) ->
85- set_sink_handler_log_level (Sink , Rest , Level ).
92+ set_sink_handler_log_level (Sink , Rest , Level , Hwm );
93+ set_sink_handler_log_level (Sink , [_ |Rest ], Level , Hwm ) ->
94+ set_sink_handler_log_level (Sink , Rest , Level , Hwm ).
8695
8796log_locations () ->
8897 ensure_lager_configured (),
@@ -293,7 +302,7 @@ configure_lager() ->
293302 {ok , Val } when is_integer (Val ) andalso Val < 1000 ->
294303 ok = application :set_env (lager , error_logger_hwm , 1000 ),
295304 ok = application :set_env (lager , error_logger_hwm_original , Val );
296- {ok , Val } ->
305+ {ok , Val } when is_integer ( Val ) ->
297306 ok = application :set_env (lager , error_logger_hwm_original , Val ),
298307 ok
299308 end ,
0 commit comments