Browse Source

Merge pull request #456 from erlang-lager/adt/otp-21

OTP 21 support
pull/459/head
Andrew Thompson 7 years ago
committed by GitHub
parent
commit
f92d43021f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 12 deletions
  1. +1
    -0
      .travis.yml
  2. +1
    -1
      rebar.config
  3. +17
    -11
      src/lager_app.erl

+ 1
- 0
.travis.yml View File

@ -1,6 +1,7 @@
sudo: false sudo: false
language: erlang language: erlang
otp_release: otp_release:
- 21.0-rc2
- 20.0 - 20.0
- 19.3 - 19.3
- 18.3 - 18.3

+ 1
- 1
rebar.config View File

@ -21,7 +21,7 @@
{erl_opts, [ {erl_opts, [
{lager_extra_sinks, ['__lager_test_sink']}, {lager_extra_sinks, ['__lager_test_sink']},
{platform_define, "(19|20)", test_statem},
{platform_define, "(19|20|21)", test_statem},
{platform_define, "(18)", 'FUNCTION_NAME', unavailable}, {platform_define, "(18)", 'FUNCTION_NAME', unavailable},
{platform_define, "(18)", 'FUNCTION_ARITY', 0}, {platform_define, "(18)", 'FUNCTION_ARITY', 0},
debug_info, debug_info,

+ 17
- 11
src/lager_app.erl View File

@ -158,24 +158,30 @@ start_error_logger_handler(true, HWM, WhiteList) ->
throw({error, bad_config}) throw({error, bad_config})
end, end,
case whereis(error_logger) of
undefined ->
%% On OTP 21 and above, error_logger is deprecated in favor of 'logger'
%% As a band-aid, boot up error_logger anyway and install it as a logger handler
%% we can't use error_logger:add_report_handler because we want supervision of the handler
%% so we have to manually add the logger handler
%%
%% Longer term we should be installing a logger handler instead, but this will bridge the gap
%% for now.
error_logger:start(),
_ = logger:add_handler(error_logger,error_logger,#{level=>info,filter_default=>log});
_ ->
ok
end,
_ = case supervisor:start_child(lager_handler_watcher_sup, [error_logger, error_logger_lager_h, [HWM, GlStrategy]]) of
%% capture which handlers we removed from error_logger so we can restore them when lager stops
OldHandlers = case supervisor:start_child(lager_handler_watcher_sup, [error_logger, error_logger_lager_h, [HWM, GlStrategy]]) of
{ok, _} -> {ok, _} ->
[begin error_logger:delete_report_handler(X), X end || [begin error_logger:delete_report_handler(X), X end ||
X <- gen_event:which_handlers(error_logger) -- [error_logger_lager_h | WhiteList]]; X <- gen_event:which_handlers(error_logger) -- [error_logger_lager_h | WhiteList]];
{error, _} -> {error, _} ->
[] []
end, end,
Handlers = case application:get_env(lager, handlers) of
undefined ->
[{lager_console_backend, [{level, info}]},
{lager_file_backend, [{file, "log/error.log"}, {level, error}, {size, 10485760}, {date, "$D0"}, {count, 5}]},
{lager_file_backend, [{file, "log/console.log"}, {level, info}, {size, 10485760}, {date, "$D0"}, {count, 5}]}];
{ok, Val} ->
Val
end,
Handlers.
OldHandlers.
configure_sink(Sink, SinkDef) -> configure_sink(Sink, SinkDef) ->
lager_config:new_sink(Sink), lager_config:new_sink(Sink),

Loading…
Cancel
Save