diff --git a/src/lager.erl b/src/lager.erl index c01693e..c1e094d 100644 --- a/src/lager.erl +++ b/src/lager.erl @@ -90,7 +90,7 @@ dispatch_log(Severity, Metadata, Format, Args, Size) when is_atom(Severity)-> %% this is the same check that the parse transform bakes into the module at compile time dispatch_log(Sink, Severity, Metadata, Format, Args, Size) when is_atom(Severity)-> SeverityAsInt=lager_util:level_to_num(Severity), - case {whereis(Sink), lager_config:get(Sink, loglevel, {?LOG_NONE, []})} of + case {whereis(Sink), lager_config:get({Sink, loglevel}, {?LOG_NONE, []})} of {undefined, _} -> {error, lager_not_running}; {SinkPid, {Level, Traces}} when (Level band SeverityAsInt) /= 0 orelse Traces /= [] -> @@ -117,7 +117,7 @@ do_log(Severity, Metadata, Format, Args, Size, SeverityAsInt, LevelThreshold, Tr end, LagerMsg = lager_msg:new(Msg, Severity, Metadata, Destinations), - case lager_config:get(Sink, async, false) of %% this needs to be able to get value from a non-default sink + case lager_config:get({Sink, async}, false) of %% this needs to be able to get value from a non-default sink true -> gen_event:notify(SinkPid, {log, LagerMsg}); false -> @@ -250,11 +250,11 @@ stop_trace({Backend, Filter, Level}) -> stop_trace(Backend, Filter, Level). stop_trace_int({Backend, _Filter, _Level} = Trace, Sink) -> - {Level, Traces} = lager_config:get(Sink, loglevel), + {Level, Traces} = lager_config:get({Sink, loglevel}), NewTraces = lists:delete(Trace, Traces), _ = lager_util:trace_filter([ element(1, T) || T <- NewTraces ]), %MinLevel = minimum_loglevel(get_loglevels() ++ get_trace_levels(NewTraces)), - lager_config:set(Sink, loglevel, {Level, NewTraces}), + lager_config:set({Sink, loglevel}, {Level, NewTraces}), case get_loglevel(Sink, Backend) of none -> %% check no other traces point here @@ -389,21 +389,21 @@ get_loglevels(Sink) -> %% @private add_trace_to_loglevel_config(Trace, Sink) -> - {MinLevel, Traces} = lager_config:get(Sink, loglevel), + {MinLevel, Traces} = lager_config:get({Sink, loglevel}), case lists:member(Trace, Traces) of false -> NewTraces = [Trace|Traces], _ = lager_util:trace_filter([ element(1, T) || T <- NewTraces]), - lager_config:set(Sink, loglevel, {MinLevel, [Trace|Traces]}); + lager_config:set({Sink, loglevel}, {MinLevel, [Trace|Traces]}); _ -> ok end. %% @doc recalculate min log level update_loglevel_config(Sink) -> - {_, Traces} = lager_config:get(Sink, loglevel), + {_, Traces} = lager_config:get({Sink, loglevel}), MinLog = minimum_loglevel(get_loglevels(Sink)), - lager_config:set(Sink, loglevel, {MinLog, Traces}). + lager_config:set({Sink, loglevel}, {MinLog, Traces}). %% @private minimum_loglevel(Levels) -> diff --git a/src/lager_config.erl b/src/lager_config.erl index e2a7a80..324dfc9 100644 --- a/src/lager_config.erl +++ b/src/lager_config.erl @@ -20,7 +20,7 @@ -include("lager.hrl"). --export([new/0, get/1, get/2, get/3, set/2, set/3, +-export([new/0, get/1, get/2, set/2, global_get/1, global_get/2, global_set/2]). -define(TBL, lager_config). @@ -57,13 +57,11 @@ global_get(Key, Default) -> global_set(Key, Value) -> set(?GLOBAL, Key, Value). -get(Key) -> - get(?DEFAULT_SINK, Key, undefined). -get(Key, Default) -> - get(?DEFAULT_SINK, Key, Default). +get(Key) -> + get({?DEFAULT_SINK, Key}, undefined). -get(Sink, Key, Default) -> +get({Sink, Key}, Default) -> try case ets:lookup(?TBL, {Sink, Key}) of [] -> @@ -74,10 +72,12 @@ get(Sink, Key, Default) -> catch _:_ -> Default - end. + end; +get(Key, Default) -> + get({?DEFAULT_SINK, Key}, Default). set(Key, Value) -> - set(?DEFAULT_SINK, Key, Value). + set({?DEFAULT_SINK, Key}, Value). -set(Sink, Key, Value) -> +set({Sink, Key}, Value) -> ets:insert(?TBL, {{Sink, Key}, Value}).