From e3e8c80a04781f1c61bd6023bd24cb77ebfc0497 Mon Sep 17 00:00:00 2001 From: Andrew Thompson Date: Wed, 26 Oct 2011 12:55:41 -0400 Subject: [PATCH] Fix loglevel changes for files, now they've been refactored --- src/lager.erl | 3 ++- src/lager_file_backend.erl | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/lager.erl b/src/lager.erl index 17c372c..e306dff 100644 --- a/src/lager.erl +++ b/src/lager.erl @@ -161,7 +161,8 @@ set_loglevel(Handler, Level) when is_atom(Level) -> %% @doc Set the loglevel for a particular backend that has multiple identifiers %% (eg. the file backend). set_loglevel(Handler, Ident, Level) when is_atom(Level) -> - Reply = gen_event:call(lager_event, Handler, {set_loglevel, Ident, Level}, infinity), + io:format("handler: ~p~n", [{Handler, Ident}]), + Reply = gen_event:call(lager_event, {Handler, Ident}, {set_loglevel, Level}, infinity), %% recalculate min log level MinLog = minimum_loglevel(get_loglevels()), {_, Traces} = lager_mochiglobal:get(loglevel), diff --git a/src/lager_file_backend.erl b/src/lager_file_backend.erl index 3ffb559..6845aff 100644 --- a/src/lager_file_backend.erl +++ b/src/lager_file_backend.erl @@ -74,9 +74,7 @@ init(LogFile) -> end. %% @private -handle_call({set_loglevel, _}, State) -> - {ok, {error, missing_identifier}, State}; -handle_call({set_loglevel, Ident, Level}, #state{name=Ident} = State) -> +handle_call({set_loglevel, Level}, #state{name=Ident} = State) -> ?INT_LOG(notice, "Changed loglevel of ~s to ~p", [Ident, Level]), {ok, ok, State#state{level=lager_util:level_to_num(Level)}}; handle_call(get_loglevel, #state{level=Level} = State) -> @@ -317,7 +315,7 @@ filesystem_test_() -> }, {"runtime level changes", fun() -> - gen_event:add_handler(lager_event, lager_file_backend, {"test.log", info}), + gen_event:add_handler(lager_event, {lager_file_backend, "test.log"}, {"test.log", info}), ?assertEqual(0, lager_test_backend:count()), lager:log(info, self(), "Test message1"), lager:log(error, self(), "Test message2"), @@ -335,8 +333,8 @@ filesystem_test_() -> {"invalid runtime level changes", fun() -> gen_event:add_handler(lager_event, lager_file_backend, {"test.log", info}), - ?assertEqual({error, bad_identifier}, lager:set_loglevel(lager_file_backend, "test2.log", warning)), - ?assertEqual({error, missing_identifier}, lager:set_loglevel(lager_file_backend, warning)) + gen_event:add_handler(lager_event, lager_file_backend, {"test3.log", info}), + ?assertEqual({error, bad_module}, lager:set_loglevel(lager_file_backend, "test.log", warning)) end }, {"tracing should work", @@ -374,8 +372,16 @@ filesystem_test_() -> {ok, Bin3} = file:read_file("test.log"), ?assertMatch([_, _, "[error]", _, "Test message\n"], re:split(Bin3, " ", [{return, list}, {parts, 5}])) end + }, + {"tracing to a dedicated file should work", + fun() -> + file:delete("foo.log"), + lager:trace_file("foo.log", [{module, ?MODULE}]), + lager:error("Test message"), + {ok, Bin3} = file:read_file("foo.log"), + ?assertMatch([_, _, "[error]", _, "Test message\n"], re:split(Bin3, " ", [{return, list}, {parts, 5}])) + end } - ] }.