From 75a5088676d360c5edc926226b418f8a776696b2 Mon Sep 17 00:00:00 2001 From: Andrew Thompson Date: Fri, 24 Jun 2011 15:14:53 -0400 Subject: [PATCH] Make the file backend clean up on terminate --- src/lager.erl | 4 +++- src/lager_file_backend.erl | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/lager.erl b/src/lager.erl index 2addbe6..b434612 100644 --- a/src/lager.erl +++ b/src/lager.erl @@ -33,7 +33,8 @@ start_link() -> %application:start(riak_err), Handlers = case application:get_env(lager, handlers) of undefined -> - [{lager_console_backend, [info]}]; + [{lager_console_backend, [info]}, + {lager_file_backend, [{"error.log", error}, {"console.log", info}]}]; Val -> Val end, @@ -91,6 +92,7 @@ handle_info(Info, State) -> {noreply, State}. terminate(_Reason, _State) -> + gen_event:stop(lager_event), ok. code_change(_OldVsn, State, _Extra) -> diff --git a/src/lager_file_backend.erl b/src/lager_file_backend.erl index 79bf90e..e1e0c51 100644 --- a/src/lager_file_backend.erl +++ b/src/lager_file_backend.erl @@ -67,8 +67,13 @@ handle_event(_Event, State) -> handle_info(_Info, State) -> {ok, State}. -terminate(_Reason, _State) -> - ok. +terminate(_Reason, State) -> + io:format("lager file handler exiting~n"), + %% flush and close any file handles + lists:foreach( + fun({_, _, FD, _}) -> file:datasync(FD), file:close(FD); + (_) -> ok + end, State#state.files). code_change(_OldVsn, State, _Extra) -> {ok, State}.