diff options
-rw-r--r-- | src/rabbit_trace.erl | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/rabbit_trace.erl b/src/rabbit_trace.erl index 96e85024..a2cb5027 100644 --- a/src/rabbit_trace.erl +++ b/src/rabbit_trace.erl @@ -45,15 +45,19 @@ vhost(#basic_message{exchange_name = #resource{virtual_host = VHost}}) -> VHost. maybe_trace(Msg, RKPrefix, RKSuffix, Extra) -> XName = xname(Msg), - case application:get_env(rabbit, {trace_exchange, vhost(Msg)}) of - undefined -> ok; - {ok, XName} -> ok; - {ok, TraceX} -> case catch trace(TraceX, Msg, RKPrefix, RKSuffix, - Extra) of - {'EXIT', R} -> rabbit_log:info( - "Trace tap died: ~p~n", [R]); - ok -> ok - end + case trace_exchange(vhost(Msg)) of + none -> ok; + XName -> ok; + TraceX -> case catch trace(TraceX, Msg, RKPrefix, RKSuffix, Extra) of + {'EXIT', R} -> rabbit_log:info("Trace died: ~p~n", [R]); + ok -> ok + end + end. + +trace_exchange(VHost) -> + case application:get_env(rabbit, trace_exchanges) of + undefined -> none; + {ok, Xs} -> proplists:get_value(VHost, Xs, none) end. trace(TraceX, Msg0, RKPrefix, RKSuffix, Extra) -> |