Parcourir la source

Make sink name construction common & test

Based on code review comments put this function into util.
Added a couple simple unit tests for sanity checking purposes.
pull/270/head
Mark Allen il y a 10 ans
Parent
révision
20edd1519a
3 fichiers modifiés avec 18 ajouts et 18 suppressions
  1. +1
    -8
      src/lager_app.erl
  2. +2
    -9
      src/lager_transform.erl
  3. +15
    -1
      src/lager_util.erl

+ 1
- 8
src/lager_app.erl Voir le fichier

@ -164,16 +164,9 @@ wrap_proplist_value(undefined) ->
wrap_proplist_value(Value) ->
{ok, Value}.
%% The default sink has always been lager_event. Using 'lager_lager_event' is likely to break
%% historical code and lots of tests.
make_internal_sink_name(lager) -> ?DEFAULT_SINK;
make_internal_sink_name(Sink) ->
list_to_atom(atom_to_list(Sink) ++ "_lager_event").
configure_sink(Sink, SinkDef) ->
lager_config:new_sink(Sink),
ChildId = make_internal_sink_name(Sink),
ChildId = lager_util:make_internal_sink_name(Sink),
_ = supervisor:start_child(lager_sup,
{ChildId,
{gen_event, start_link,

+ 2
- 9
src/lager_transform.erl Voir le fichier

@ -79,13 +79,6 @@ walk_body(Acc, []) ->
walk_body(Acc, [H|T]) ->
walk_body([transform_statement(H, get(sinks))|Acc], T).
%% 'lager' is special cased because its sink has *always* been named 'lager_event'
make_internal_sink_name(lager) -> ?DEFAULT_SINK;
%% Everything else should be Sink++_lager_event
make_internal_sink_name(Sink) ->
list_to_atom(atom_to_list(Sink) ++ "_lager_event").
transform_statement({call, Line, {remote, _Line1, {atom, _Line2, Module},
{atom, _Line3, Function}}, Arguments0} = Stmt,
Sinks) ->
@ -93,12 +86,12 @@ transform_statement({call, Line, {remote, _Line1, {atom, _Line2, Module},
true ->
case lists:member(Function, ?LEVELS) of
true ->
SinkName = make_internal_sink_name(Module),
SinkName = lager_util:make_internal_sink_name(Module),
do_transform(Line, SinkName, Function, Arguments0);
false ->
case lists:keyfind(Function, 1, ?LEVELS_UNSAFE) of
{Function, Severity} ->
SinkName = make_internal_sink_name(Module),
SinkName = lager_util:make_internal_sink_name(Module),
do_transform(Line, SinkName, Severity, Arguments0, unsafe);
false ->
Stmt

+ 15
- 1
src/lager_util.erl Voir le fichier

@ -23,7 +23,7 @@
open_logfile/2, ensure_logfile/4, rotate_logfile/2, format_time/0, format_time/1,
localtime_ms/0, localtime_ms/1, maybe_utc/1, parse_rotation_date_spec/1,
calculate_next_rotation/1, validate_trace/1, check_traces/4, is_loggable/3,
trace_filter/1, trace_filter/2, expand_path/1, check_hwm/1]).
trace_filter/1, trace_filter/2, expand_path/1, check_hwm/1, make_internal_sink_name/1]).
-ifdef(TEST).
-include_lib("eunit/include/eunit.hrl").
@ -524,6 +524,14 @@ discard_messages(Second, Count) ->
Count
end.
%% @private Build an atom for the gen_event process based on a sink name.
%% For historical reasons, the default gen_event process for lager itself is named
%% `lager_event'. For all other sinks, it is SinkName++`_lager_event'
make_internal_sink_name(lager) ->
?DEFAULT_SINK;
make_internal_sink_name(Sink) ->
list_to_atom(atom_to_list(Sink) ++ "_lager_event").
-ifdef(TEST).
parse_test() ->
@ -781,4 +789,10 @@ expand_path_test() ->
end,
ok.
sink_name_test_() ->
[
?_assertEqual(lager_event, make_internal_sink_name(lager)),
?_assertEqual(audit_lager_event, make_internal_sink_name(audit))
].
-endif.

Chargement…
Annuler
Enregistrer