From a71a7ff1a7ddabb59d36062b809224a0a9be9383 Mon Sep 17 00:00:00 2001 From: "John R. Daily" Date: Mon, 27 Apr 2015 09:31:02 -0400 Subject: [PATCH] Do not forget to clear traces from global loglevel settings --- src/lager.erl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/lager.erl b/src/lager.erl index 4679704..718adbd 100644 --- a/src/lager.erl +++ b/src/lager.erl @@ -270,8 +270,26 @@ stop_trace_int({Backend, _Filter, _Level} = Trace, Sink) -> end, ok. +name_all_sinks() -> + sets:to_list( + lists:foldl(fun({_Watcher, _Handler, Sink}, Set) -> + sets:add_element(Sink, Set) + end, + sets:new(), + lager_config:global_get(handlers, []))). + +clear_traces_by_sink(Sinks) -> + lists:foreach(fun(S) -> + {Level, _Traces} = + lager_config:get({S, loglevel}), + lager_config:set({S, loglevel}, + {Level, []}) + end, + Sinks). + clear_all_traces() -> Handlers = lager_config:global_get(handlers, []), + clear_traces_by_sink(name_all_sinks()), _ = lager_util:trace_filter(none), lists:foreach(fun({_Watcher, Handler, Sink}) -> case get_loglevel(Sink, Handler) of