|
@ -178,16 +178,15 @@ handle_event(_Event, State) -> |
|
|
%% @private |
|
|
%% @private |
|
|
handle_info({rotate, File}, #state{name=File,count=Count,date=Date} = State) -> |
|
|
handle_info({rotate, File}, #state{name=File,count=Count,date=Date} = State) -> |
|
|
_ = lager_util:rotate_logfile(File, Count), |
|
|
_ = lager_util:rotate_logfile(File, Count), |
|
|
|
|
|
State1 = close_file(State), |
|
|
schedule_rotation(File, Date), |
|
|
schedule_rotation(File, Date), |
|
|
{ok, State}; |
|
|
|
|
|
|
|
|
{ok, State1}; |
|
|
handle_info(_Info, State) -> |
|
|
handle_info(_Info, State) -> |
|
|
{ok, State}. |
|
|
{ok, State}. |
|
|
|
|
|
|
|
|
%% @private |
|
|
%% @private |
|
|
terminate(_Reason, #state{fd=FD}) -> |
|
|
|
|
|
%% flush and close any file handles |
|
|
|
|
|
_ = file:datasync(FD), |
|
|
|
|
|
_ = file:close(FD), |
|
|
|
|
|
|
|
|
terminate(_Reason, State) -> |
|
|
|
|
|
close_file(State), |
|
|
ok. |
|
|
ok. |
|
|
|
|
|
|
|
|
%% @private |
|
|
%% @private |
|
@ -401,6 +400,14 @@ schedule_rotation(Name, Date) -> |
|
|
erlang:send_after(lager_util:calculate_next_rotation(Date) * 1000, self(), {rotate, Name}), |
|
|
erlang:send_after(lager_util:calculate_next_rotation(Date) * 1000, self(), {rotate, Name}), |
|
|
ok. |
|
|
ok. |
|
|
|
|
|
|
|
|
|
|
|
close_file(#state{fd=undefined} = State) -> |
|
|
|
|
|
State; |
|
|
|
|
|
close_file(#state{fd=FD} = State) -> |
|
|
|
|
|
%% Flush and close any file handles. |
|
|
|
|
|
_ = file:datasync(FD), |
|
|
|
|
|
_ = file:close(FD), |
|
|
|
|
|
State#state{fd=undefined}. |
|
|
|
|
|
|
|
|
-ifdef(TEST). |
|
|
-ifdef(TEST). |
|
|
|
|
|
|
|
|
get_loglevel_test() -> |
|
|
get_loglevel_test() -> |
|
|