Procházet zdrojové kódy

Revert decision to throw a {sink, Sink} tuple at every backend; instead, special case the throttle

pull/264/head
John R. Daily před 10 roky
rodič
revize
4f94260239
6 změnil soubory, kde provedl 28 přidání a 27 odebrání
  1. +1
    -1
      src/error_logger_lager_h.erl
  2. +7
    -9
      src/lager_console_backend.erl
  3. +0
    -2
      src/lager_file_backend.erl
  4. +13
    -6
      src/lager_handler_watcher.erl
  5. +1
    -1
      test/lager_crash_backend.erl
  6. +6
    -8
      test/lager_test_backend.erl

+ 1
- 1
src/error_logger_lager_h.erl Zobrazit soubor

@ -74,7 +74,7 @@ set_high_water(N) ->
gen_event:call(error_logger, ?MODULE, {set_high_water, N}, infinity).
-spec init(any()) -> {ok, #state{}}.
init([{sink, Sink}, HighWaterMark]) ->
init([HighWaterMark]) ->
{ok, #state{hwm=HighWaterMark}}.
handle_call({set_high_water, N}, State) ->

+ 7
- 9
src/lager_console_backend.erl Zobrazit soubor

@ -40,8 +40,6 @@
%% @private
init([Level]) when is_atom(Level) ->
init(Level);
init([{sink, _Sink}|T]) ->
init(T);
init([Level, true]) -> % for backwards compatibility
init([Level,{lager_default_formatter,[{eol, eol()}]}]);
init([Level,false]) -> % for backwards compatibility
@ -188,7 +186,7 @@ console_log_test_() ->
unregister(user),
register(user, Pid),
erlang:group_leader(Pid, whereis(lager_event)),
gen_event:add_handler(lager_event, lager_console_backend, [{sink, lager_event}, info]),
gen_event:add_handler(lager_event, lager_console_backend, info),
lager_config:set({lager_event, loglevel}, {element(2, lager_util:config_to_mask(info)), []}),
lager:log(info, self(), "Test message"),
receive
@ -208,7 +206,7 @@ console_log_test_() ->
unregister(user),
register(user, Pid),
erlang:group_leader(Pid, whereis(lager_event)),
gen_event:add_handler(lager_event, lager_console_backend, [{sink, lager_event}, info, true]),
gen_event:add_handler(lager_event, lager_console_backend, [info, true]),
lager_config:set({lager_event, loglevel}, {element(2, lager_util:config_to_mask(info)), []}),
lager:info("Test message"),
PidStr = pid_to_list(self()),
@ -229,7 +227,7 @@ console_log_test_() ->
register(user, Pid),
erlang:group_leader(Pid, whereis(lager_event)),
gen_event:add_handler(lager_event, lager_console_backend,
[{sink, lager_event}, info, {lager_default_formatter, [date,"#",time,"#",severity,"#",node,"#",pid,"#",
[info, {lager_default_formatter, [date,"#",time,"#",severity,"#",node,"#",pid,"#",
module,"#",function,"#",file,"#",line,"#",message,"\r\n"]}]),
lager_config:set({lager_event, loglevel}, {?INFO, []}),
lager:info("Test message"),
@ -252,7 +250,7 @@ console_log_test_() ->
Pid = spawn(F(self())),
unregister(user),
register(user, Pid),
gen_event:add_handler(lager_event, lager_console_backend, [{sink, lager_event}, info]),
gen_event:add_handler(lager_event, lager_console_backend, info),
erlang:group_leader(Pid, whereis(lager_event)),
lager_config:set({lager_event, loglevel}, {element(2, lager_util:config_to_mask(info)), []}),
lager:debug("Test message"),
@ -282,7 +280,7 @@ console_log_test_() ->
Pid = spawn(F(self())),
unregister(user),
register(user, Pid),
gen_event:add_handler(lager_event, lager_console_backend, [{sink, lager_event}, info]),
gen_event:add_handler(lager_event, lager_console_backend, info),
lager_config:set({lager_event, loglevel}, {element(2, lager_util:config_to_mask(info)), []}),
erlang:group_leader(Pid, whereis(lager_event)),
lager:debug("Test message"),
@ -321,7 +319,7 @@ console_log_test_() ->
Pid = spawn(F(self())),
unregister(user),
register(user, Pid),
gen_event:add_handler(lager_event, lager_console_backend, [{sink, lager_event}, info]),
gen_event:add_handler(lager_event, lager_console_backend, info),
lager_config:set({lager_event, loglevel}, {element(2, lager_util:config_to_mask(info)), []}),
lager:set_loglevel(lager_console_backend, '!=info'),
erlang:group_leader(Pid, whereis(lager_event)),
@ -352,7 +350,7 @@ console_log_test_() ->
Pid = spawn(F(self())),
unregister(user),
register(user, Pid),
gen_event:add_handler(lager_event, lager_console_backend, [{sink, lager_event}, info]),
gen_event:add_handler(lager_event, lager_console_backend, info),
lager_config:set({lager_event, loglevel}, {element(2, lager_util:config_to_mask(info)), []}),
lager:set_loglevel(lager_console_backend, '=debug'),
erlang:group_leader(Pid, whereis(lager_event)),

+ 0
- 2
src/lager_file_backend.erl Zobrazit soubor

@ -80,8 +80,6 @@
{formatter_config, term()}.
-spec init([option(),...]) -> {ok, #state{}} | {error, bad_config}.
init([{sink, _Sink}|Options]) ->
init(Options);
init({FileName, LogLevel}) when is_list(FileName), is_atom(LogLevel) ->
%% backwards compatability hack
init([{file, FileName}, {level, LogLevel}]);

+ 13
- 6
src/lager_handler_watcher.erl Zobrazit soubor

@ -47,11 +47,8 @@ start_link(Sink, Module, Config) ->
start(Sink, Module, Config) ->
gen_server:start(?MODULE, [Sink, Module, Config], []).
init([Sink, Module, Config]) when is_list(Config) ->
install_handler(Sink, Module, Config),
{ok, #state{sink=Sink, module=Module, config=Config}};
init([Sink, Module, Config]) ->
install_handler(Sink, Module, [Config]),
install_handler(Sink, Module, Config),
{ok, #state{sink=Sink, module=Module, config=Config}}.
handle_call(_Call, _From, State) ->
@ -90,9 +87,19 @@ code_change(_OldVsn, State, _Extra) ->
{ok, State}.
%% internal
install_handler(Sink, lager_backend_throttle, Config) ->
%% The lager_backend_throttle needs to know to which sink it is
%% attached, hence this admittedly ugly workaround. Handlers are
%% sensitive to the structure of the configuration sent to `init',
%% sadly, so it's not trivial to add a configuration item to be
%% ignored to backends without breaking 3rd party handlers.
install_handler2(Sink, lager_backend_throttle, [{sink, Sink}|Config]);
install_handler(Sink, Module, Config) ->
case gen_event:add_sup_handler(Sink, Module, [{sink, Sink}|Config]) of
install_handler2(Sink, Module, Config).
%% private
install_handler2(Sink, Module, Config) ->
case gen_event:add_sup_handler(Sink, Module, Config) of
ok ->
?INT_LOG(debug, "Lager installed handler ~p into ~p", [Module, Sink]),
lager:update_loglevel_config(Sink),

+ 1
- 1
test/lager_crash_backend.erl Zobrazit soubor

@ -27,7 +27,7 @@
-include_lib("eunit/include/eunit.hrl").
-endif.
init([{sink, _Sink}, CrashBefore, CrashAfter]) ->
init([CrashBefore, CrashAfter]) ->
case is_tuple(CrashBefore) andalso (timer:now_diff(CrashBefore, os:timestamp()) > 0) of
true ->
%?debugFmt("crashing!~n", []),

+ 6
- 8
test/lager_test_backend.erl Zobrazit soubor

@ -35,8 +35,6 @@
-export([pop/0, count/0, count_ignored/0, flush/0, print_state/0]).
-endif.
init([{sink, _Sink}, Level]) ->
init(Level);
init(Level) ->
{ok, #state{level=lager_util:config_to_mask(Level), buffer=[], ignored=[]}}.
@ -150,11 +148,11 @@ lager_test_() ->
?assertEqual(0, count())
end
},
{"test sink not running",
fun() ->
?assertEqual({error, {sink_not_configured, test}}, lager:log(test, info, self(), "~p", "not running"))
end
},
{"test sink not running",
fun() ->
?assertEqual({error, {sink_not_configured, test}}, lager:log(test, info, self(), "~p", "not running"))
end
},
{"logging works",
fun() ->
lager:warning("test message"),
@ -665,7 +663,7 @@ extra_sinks_test_() ->
ok
end
}
]
]
}.
setup_sink() ->

Načítá se…
Zrušit
Uložit