|
|
@ -0,0 +1,82 @@ |
|
|
|
|
|
|
|
-module(lager_metadata_whitelist_test). |
|
|
|
|
|
|
|
-compile([{parse_transform, lager_transform}]). |
|
|
|
|
|
|
|
-ifdef(TEST). |
|
|
|
-include_lib("eunit/include/eunit.hrl"). |
|
|
|
|
|
|
|
% Our expectation is that the first log entry will appear so we won't actually |
|
|
|
% wait out ?FIRST_LOG_ENTRY_TIMEOUT. On the other hand, the second log entry is |
|
|
|
% expected never to arrive, so the test will wait out ?SECOND_LOG_ENTRY_TIMEOUT; |
|
|
|
% that's why it is shorter. |
|
|
|
-define(FIRST_LOG_ENTRY_TIMEOUT, (10 * 1000)). % 10 seconds |
|
|
|
-define(SECOND_LOG_ENTRY_TIMEOUT, 1000). % 1 second |
|
|
|
|
|
|
|
-define(FNAME, "test/test1.log"). |
|
|
|
|
|
|
|
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. |