|
|
@ -24,6 +24,7 @@ |
|
|
|
code_change/3]). |
|
|
|
|
|
|
|
-record(state, {level, buffer, ignored}). |
|
|
|
-record(test, {attrs, format, args}). |
|
|
|
-compile([{parse_transform, lager_transform}]). |
|
|
|
|
|
|
|
-ifdef(TEST). |
|
|
@ -210,6 +211,95 @@ lager_test_() -> |
|
|
|
ok |
|
|
|
end |
|
|
|
}, |
|
|
|
{"list comprehension inplace of literals in logging statements work", |
|
|
|
fun() -> |
|
|
|
?assertEqual(0, count()), |
|
|
|
Attr = [{a, alpha}, {b, beta}], |
|
|
|
Fmt = "format ~p", |
|
|
|
Args = [world], |
|
|
|
lager:info([{K, atom_to_list(V)} || {K, V} <- Attr], "hello"), |
|
|
|
lager:info([{K, atom_to_list(V)} || {K, V} <- Attr], "hello ~p", [{atom, X} || X <- Args]), |
|
|
|
lager:info([X || X <- Fmt], [world]), |
|
|
|
lager:info("hello ~p", [{atom, X} || X <- Args]), |
|
|
|
lager:info([{K, atom_to_list(V)} || {K, V} <- Attr], "hello ~p", [{atom, X} || X <- Args]), |
|
|
|
lager:info([{d, delta}, {g, gamma}], Fmt, [{atom, X} || X <- Args]), |
|
|
|
?assertEqual(6, count()), |
|
|
|
{_Level, _Time, Message, Metadata} = pop(), |
|
|
|
?assertMatch([{a, "alpha"}, {b, "beta"}|_], Metadata), |
|
|
|
?assertEqual("hello", lists:flatten(Message)), |
|
|
|
{_Level, _Time2, Message2, _Metadata2} = pop(), |
|
|
|
?assertEqual("hello {atom,world}", lists:flatten(Message2)), |
|
|
|
{_Level, _Time3, Message3, _Metadata3} = pop(), |
|
|
|
?assertEqual("format world", lists:flatten(Message3)), |
|
|
|
{_Level, _Time4, Message4, _Metadata4} = pop(), |
|
|
|
?assertEqual("hello {atom,world}", lists:flatten(Message4)), |
|
|
|
{_Level, _Time5, Message5, _Metadata5} = pop(), |
|
|
|
?assertEqual("hello {atom,world}", lists:flatten(Message5)), |
|
|
|
{_Level, _Time6, Message6, Metadata6} = pop(), |
|
|
|
?assertMatch([{d, delta}, {g, gamma}|_], Metadata6), |
|
|
|
?assertEqual("format {atom,world}", lists:flatten(Message6)), |
|
|
|
ok |
|
|
|
end |
|
|
|
}, |
|
|
|
{"function calls inplace of literals in logging statements work", |
|
|
|
fun() -> |
|
|
|
?assertEqual(0, count()), |
|
|
|
put(attrs, [{a, alpha}, {b, beta}]), |
|
|
|
put(format, "format ~p"), |
|
|
|
put(args, [world]), |
|
|
|
lager:info(get(attrs), "hello"), |
|
|
|
lager:info(get(attrs), "hello ~p", get(args)), |
|
|
|
lager:info(get(format), [world]), |
|
|
|
lager:info("hello ~p", erlang:get(args)), |
|
|
|
lager:info(fun() -> get(attrs) end(), "hello ~p", get(args)), |
|
|
|
lager:info([{d, delta}, {g, gamma}], get(format), get(args)), |
|
|
|
?assertEqual(6, count()), |
|
|
|
{_Level, _Time, Message, Metadata} = pop(), |
|
|
|
?assertMatch([{a, alpha}, {b, beta}|_], Metadata), |
|
|
|
?assertEqual("hello", lists:flatten(Message)), |
|
|
|
{_Level, _Time2, Message2, _Metadata2} = pop(), |
|
|
|
?assertEqual("hello world", lists:flatten(Message2)), |
|
|
|
{_Level, _Time3, Message3, _Metadata3} = pop(), |
|
|
|
?assertEqual("format world", lists:flatten(Message3)), |
|
|
|
{_Level, _Time4, Message4, _Metadata4} = pop(), |
|
|
|
?assertEqual("hello world", lists:flatten(Message4)), |
|
|
|
{_Level, _Time5, Message5, _Metadata5} = pop(), |
|
|
|
?assertEqual("hello world", lists:flatten(Message5)), |
|
|
|
{_Level, _Time6, Message6, Metadata6} = pop(), |
|
|
|
?assertMatch([{d, delta}, {g, gamma}|_], Metadata6), |
|
|
|
?assertEqual("format world", lists:flatten(Message6)), |
|
|
|
ok |
|
|
|
end |
|
|
|
}, |
|
|
|
{"record fields inplace of literals in logging statements work", |
|
|
|
fun() -> |
|
|
|
?assertEqual(0, count()), |
|
|
|
Test = #test{attrs=[{a, alpha}, {b, beta}], format="format ~p", args=[world]}, |
|
|
|
lager:info(Test#test.attrs, "hello"), |
|
|
|
lager:info(Test#test.attrs, "hello ~p", Test#test.args), |
|
|
|
lager:info(Test#test.format, [world]), |
|
|
|
lager:info("hello ~p", Test#test.args), |
|
|
|
lager:info(Test#test.attrs, "hello ~p", Test#test.args), |
|
|
|
lager:info([{d, delta}, {g, gamma}], Test#test.format, Test#test.args), |
|
|
|
?assertEqual(6, count()), |
|
|
|
{_Level, _Time, Message, Metadata} = pop(), |
|
|
|
?assertMatch([{a, alpha}, {b, beta}|_], Metadata), |
|
|
|
?assertEqual("hello", lists:flatten(Message)), |
|
|
|
{_Level, _Time2, Message2, _Metadata2} = pop(), |
|
|
|
?assertEqual("hello world", lists:flatten(Message2)), |
|
|
|
{_Level, _Time3, Message3, _Metadata3} = pop(), |
|
|
|
?assertEqual("format world", lists:flatten(Message3)), |
|
|
|
{_Level, _Time4, Message4, _Metadata4} = pop(), |
|
|
|
?assertEqual("hello world", lists:flatten(Message4)), |
|
|
|
{_Level, _Time5, Message5, _Metadata5} = pop(), |
|
|
|
?assertEqual("hello world", lists:flatten(Message5)), |
|
|
|
{_Level, _Time6, Message6, Metadata6} = pop(), |
|
|
|
?assertMatch([{d, delta}, {g, gamma}|_], Metadata6), |
|
|
|
?assertEqual("format world", lists:flatten(Message6)), |
|
|
|
ok |
|
|
|
end |
|
|
|
}, |
|
|
|
|
|
|
|
{"log messages below the threshold are ignored", |
|
|
|
fun() -> |
|
|
|
?assertEqual(0, count()), |
|
|
|