Sfoglia il codice sorgente

Metadata whitelist

pull/514/head
macpie 5 anni fa
committed by GitHub
parent
commit
6b75f9b8a8
Non sono state trovate chiavi note per questa firma nel database ID Chiave GPG: 4AEE18F83AFDEB23
2 ha cambiato i file con 104 aggiunte e 9 eliminazioni
  1. +32
    -9
      src/lager_default_formatter.erl
  2. +72
    -0
      test/lager_metadata_whitelist_test.erl

+ 32
- 9
src/lager_default_formatter.erl Vedi File

@ -57,15 +57,11 @@
format(Msg,[], Colors) ->
format(Msg, [{eol, "\n"}], Colors);
format(Msg,[{eol, EOL}], Colors) ->
format(Msg,
[date, " ", time, " ", color, "[", severity, "] ",
{pid, ""},
{module, [
{pid, ["@"], ""},
module,
{function, [":", function], ""},
{line, [":",line], ""}], ""},
" ", message, EOL], Colors);
Config = case application:get_env(lager, metadata_whitelist) of
undefined -> config(EOL, []);
{ok, Whitelist} -> config(EOL, Whitelist)
end,
format(Msg, Config, Colors);
format(Message,Config,Colors) ->
[ case V of
color -> output_color(Message,Colors);
@ -211,6 +207,33 @@ get_metadata(Key, Metadata, Default) ->
Value
end.
config(EOL, []) ->
[
date, " ", time, " ", color, "[", severity, "] ",
{pid, ""},
{module, [
{pid, ["@"], ""},
module,
{function, [":", function], ""},
{line, [":",line], ""}], ""},
" ", message, EOL
];
config(EOL, MetaWhitelist) ->
[
date, " ", time, " ", color, "[", severity, "] ",
{pid, ""},
{module, [
{pid, ["@"], ""},
module,
{function, [":", function], ""},
{line, [":",line], ""}], ""},
" "
] ++
[{M, [atom_to_list(M), "=", M, " "], ""}|| M <- MetaWhitelist] ++
[message, EOL].
uppercase_severity(debug) -> "DEBUG";
uppercase_severity(info) -> "INFO";
uppercase_severity(notice) -> "NOTICE";

+ 72
- 0
test/lager_metadata_whitelist_test.erl Vedi File

@ -0,0 +1,72 @@
-module(lager_metadata_whitelist_test).
-ifdef(TEST).
-include_lib("eunit/include/eunit.hrl").
setup() ->
ok = error_logger:tty(false),
ok = lager_util:safe_application_load(lager),
ok = application:set_env(lager, handlers, [{lager_common_test_backend, info}]),
ok = application:set_env(lager, error_logger_redirect, false),
ok = application:unset_env(lager, traces),
ok = lager:start(),
ok = timer:sleep(250),
ok.
cleanup(_) ->
ok = application:unset_env(lager, metadata_whitelist),
catch ets:delete(lager_config), %% kill the ets config table with fire
ok = application:stop(lager),
ok = application:stop(goldrush),
ok = error_logger:tty(true).
date_time_now() ->
Now = os:timestamp(),
{Date, Time} = lager_util:format_time(lager_util:maybe_utc(lager_util:localtime_ms(Now))),
{Date, Time, Now}.
basic_test_() ->
{Date, Time, Now} = date_time_now(),
{
foreach,
fun setup/0,
fun cleanup/1,
[{"Meta", fun() ->
Whitelist = [meta0],
ok = application:set_env(lager, metadata_whitelist, Whitelist),
Msg = lager_msg:new("Message", Now, error, [], []),
Expected = iolist_to_binary([Date, " ", Time, " [error] Message\n"]),
Got = iolist_to_binary(lager_default_formatter:format(Msg, [])),
?assertEqual(Expected, Got)
end},
{"Meta1", fun() ->
Whitelist = [meta1],
ok = application:set_env(lager, metadata_whitelist, Whitelist),
Msg = lager_msg:new("Message", Now, error, [{meta1, "value1"}], []),
Expected = iolist_to_binary([Date, " ", Time, " [error] meta1=value1 Message\n"]),
Got = iolist_to_binary(lager_default_formatter:format(Msg, [])),
?assertEqual(Expected, Got)
end},
{"Meta2", fun() ->
Whitelist = [meta1, meta2],
ok = application:set_env(lager, metadata_whitelist, Whitelist),
Msg = lager_msg:new("Message", Now, error, [{meta1, "value1"}, {meta2, 2}], []),
Expected = iolist_to_binary([Date, " ", Time, " [error] meta1=value1 meta2=2 Message\n"]),
Got = iolist_to_binary(lager_default_formatter:format(Msg, [])),
?assertEqual(Expected, Got)
end},
{"Meta3", fun() ->
Whitelist = [meta1, meta2],
ok = application:set_env(lager, metadata_whitelist, Whitelist),
Msg = lager_msg:new("Message", Now, error, [{meta1, "value1"}, {meta3, 3}], []),
Expected = iolist_to_binary([Date, " ", Time, " [error] meta1=value1 Message\n"]),
Got = iolist_to_binary(lager_default_formatter:format(Msg, [])),
?assertEqual(Expected, Got)
end}
]
}.
-endif.

Caricamento…
Annulla
Salva