Переглянути джерело

add set_loghwm method in order to change high water mark on the fly

pull/249/head
Eric Liang 10 роки тому
джерело
коміт
cd36e96fd7
2 змінених файлів з 18 додано та 1 видалено
  1. +9
    -1
      src/lager.erl
  2. +9
    -0
      src/lager_file_backend.erl

+ 9
- 1
src/lager.erl Переглянути файл

@ -29,7 +29,7 @@
trace/2, trace/3, trace_file/2, trace_file/3, trace_file/4, trace_console/1, trace_console/2, trace/2, trace/3, trace_file/2, trace_file/3, trace_file/4, trace_console/1, trace_console/2,
clear_all_traces/0, stop_trace/1, status/0, clear_all_traces/0, stop_trace/1, status/0,
get_loglevel/1, set_loglevel/2, set_loglevel/3, get_loglevels/0, get_loglevel/1, set_loglevel/2, set_loglevel/3, get_loglevels/0,
update_loglevel_config/0, posix_error/1,
update_loglevel_config/0, posix_error/1, set_loghwm/2, set_loghwm/3,
safe_format/3, safe_format_chop/3, dispatch_log/5, dispatch_log/9, safe_format/3, safe_format_chop/3, dispatch_log/5, dispatch_log/9,
do_log/9, pr/2]). do_log/9, pr/2]).
@ -320,6 +320,14 @@ get_loglevels() ->
[gen_event:call(lager_event, Handler, get_loglevel, infinity) || [gen_event:call(lager_event, Handler, get_loglevel, infinity) ||
Handler <- gen_event:which_handlers(lager_event)]. Handler <- gen_event:which_handlers(lager_event)].
%% @doc Set the loghwm for a particular backend.
set_loghwm(Handler, Hwm) when is_integer(Hwm) ->
gen_event:call(lager_event, Handler, {set_loghwm, Hwm}, infinity).
%% @doc Set the loghwm (log high water mark) for file backends with multiple identifiers
set_loghwm(Handler, Ident, Hwm) when is_integer(Hwm) ->
gen_event:call(lager_event, {Handler, Ident}, {set_loghwm, Hwm}, infinity).
%% @private %% @private
add_trace_to_loglevel_config(Trace) -> add_trace_to_loglevel_config(Trace) ->
{MinLevel, Traces} = lager_config:get(loglevel), {MinLevel, Traces} = lager_config:get(loglevel),

+ 9
- 0
src/lager_file_backend.erl Переглянути файл

@ -132,6 +132,15 @@ handle_call({set_loglevel, Level}, #state{name=Ident} = State) ->
end; end;
handle_call(get_loglevel, #state{level=Level} = State) -> handle_call(get_loglevel, #state{level=Level} = State) ->
{ok, Level, State}; {ok, Level, State};
handle_call({set_loghwm, Hwm}, #state{shaper=Shaper, name=Name} = State) ->
case validate_logfile_proplist([{file, Name}, {high_water_mark, Hwm}]) of
false ->
{ok, {error, bad_log_hwm}, State};
_ ->
NewShaper = Shaper#lager_shaper{hwm=Hwm},
?INT_LOG(notice, "Changed loghwm of ~s to ~p", [Name, Hwm]),
{ok, {last_loghwm, Shaper#lager_shaper.hwm}, State#state{shaper=NewShaper}}
end;
handle_call(_Request, State) -> handle_call(_Request, State) ->
{ok, ok, State}. {ok, ok, State}.

Завантаження…
Відмінити
Зберегти