-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.