Browse Source

add whitelist of error_logger handlers not to delete when error_logger_redirect is true

pull/104/head
Tristan Sloughter 12 years ago
parent
commit
10059b60ae
1 changed files with 20 additions and 13 deletions
  1. +20
    -13
      src/lager_app.erl

+ 20
- 13
src/lager_app.erl View File

@ -52,19 +52,26 @@ start(_StartType, _StartArgs) ->
{_, Traces} = lager_config:get(loglevel),
lager_config:set(loglevel, {MinLog, Traces}),
SavedHandlers = case application:get_env(lager, error_logger_redirect) of
{ok, false} ->
[];
_ ->
case supervisor:start_child(lager_handler_watcher_sup, [error_logger, error_logger_lager_h, []]) of
{ok, _} ->
%% Should we allow user to whitelist handlers to not be removed?
[begin error_logger:delete_report_handler(X), X end ||
X <- gen_event:which_handlers(error_logger) -- [error_logger_lager_h]];
{error, _} ->
[]
end
end,
SavedHandlers =
case application:get_env(lager, error_logger_redirect) of
{ok, false} ->
[];
_ ->
case application:get_env(lager, error_logger_whitelist) of
undefined ->
WhiteList = [];
{ok, WhiteList} ->
WhiteList
end,
case supervisor:start_child(lager_handler_watcher_sup, [error_logger, error_logger_lager_h, []]) of
{ok, _} ->
[begin error_logger:delete_report_handler(X), X end ||
X <- gen_event:which_handlers(error_logger) -- [error_logger_lager_h | WhiteList]];
{error, _} ->
[]
end
end,
{ok, Pid, SavedHandlers}.

Loading…
Cancel
Save