Add tracing support for metadata notfound
diff --git a/src/lager_util.erl b/src/lager_util.erl
index ae88d19..9980fb2 100644
--- a/src/lager_util.erl
+++ b/src/lager_util.erl
@@ -392,6 +392,7 @@
false;
validate_trace_filter(Filter) ->
case lists:all(fun({Key, '*'}) when is_atom(Key) -> true;
+ ({Key, '!'}) when is_atom(Key) -> true;
({Key, _Value}) when is_atom(Key) -> true;
({Key, '=', _Value}) when is_atom(Key) -> true;
({Key, '<', _Value}) when is_atom(Key) -> true;
@@ -416,6 +417,8 @@
lists:reverse(Acc);
trace_acc([{Key, '*'}|T], Acc) ->
trace_acc(T, [glc:wc(Key)|Acc]);
+trace_acc([{Key, '!'}|T], Acc) ->
+ trace_acc(T, [glc:nf(Key)|Acc]);
trace_acc([{Key, Val}|T], Acc) ->
trace_acc(T, [glc:eq(Key, Val)|Acc]);
trace_acc([{Key, '=', Val}|T], Acc) ->
diff --git a/test/lager_test_backend.erl b/test/lager_test_backend.erl
index c3e2329..9ce43fc 100644
--- a/test/lager_test_backend.erl
+++ b/test/lager_test_backend.erl
@@ -388,10 +388,15 @@
lager:info([{requestid, 8}], "hello world"),
lager:info([{requestid, 9}, {foo, bar}], "hello world"),
lager:info([{requestid, 10}], "hello world"),
- ?assertEqual(7, count()),
+ lager:trace(?MODULE, [{fu, '!'}]),
+ lager:info([{foo, bar}], "hello world"),
+ lager:info([{ooh, car}], "hello world"),
+ lager:trace(?MODULE, [{fu, '*'}]),
+ lager:info([{fu, bar}], "hello world"),
+ ?assertEqual(10, count()),
lager:clear_all_traces(),
lager:info([{requestid, 6}], "hello world"),
- ?assertEqual(7, count()),
+ ?assertEqual(10, count()),
ok
end
},