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}.