diff --git a/apps/emqx/include/logger.hrl b/apps/emqx/include/logger.hrl index a975cbd38..595957f17 100644 --- a/apps/emqx/include/logger.hrl +++ b/apps/emqx/include/logger.hrl @@ -77,15 +77,15 @@ %% Only evaluate when necessary %% Always debug the trace events. --define(TRACE(Event, Msg, Meta), +-define(TRACE(Tag, Msg, Meta), begin case persistent_term:get(?TRACE_FILTER, undefined) of undefined -> ok; [] -> ok; List -> - emqx_trace:log(List, Event, Msg, Meta) + emqx_trace:log(List, Msg, Meta#{trace_tag => Tag}) end, - ?SLOG(debug, (emqx_trace_formatter:format_meta(Meta))#{msg => Msg, trace_event => Event}, + ?SLOG(debug, (emqx_trace_formatter:format_meta(Meta))#{msg => Msg, trace_tag => Tag}, #{trace_filter => ignore}) end). diff --git a/apps/emqx/src/emqx_trace/emqx_trace.erl b/apps/emqx/src/emqx_trace/emqx_trace.erl index ac52bc246..9a1c8701a 100644 --- a/apps/emqx/src/emqx_trace/emqx_trace.erl +++ b/apps/emqx/src/emqx_trace/emqx_trace.erl @@ -27,7 +27,7 @@ -export([ publish/1 , subscribe/3 , unsubscribe/2 - , log/4 + , log/3 ]). -export([ start_link/0 @@ -94,13 +94,13 @@ unsubscribe(<<"$SYS/", _/binary>>, _SubOpts) -> ignore; unsubscribe(Topic, SubOpts) -> ?TRACE("UNSUBSCRIBE", "unsubscribe", #{topic => Topic, sub_opts => SubOpts}). -log(List, Event, Msg, Meta0) -> +log(List, Msg, Meta0) -> Meta = case logger:get_process_metadata() of undefined -> Meta0; ProcMeta -> maps:merge(ProcMeta, Meta0) end, - Log = #{level => debug, trace_event => Event, meta => Meta, msg => Msg}, + Log = #{level => debug, meta => Meta, msg => Msg}, log_filter(List, Log). log_filter([], _Log) -> ok; diff --git a/apps/emqx/src/emqx_trace/emqx_trace_formatter.erl b/apps/emqx/src/emqx_trace/emqx_trace_formatter.erl index 147b13825..b1640e621 100644 --- a/apps/emqx/src/emqx_trace/emqx_trace_formatter.erl +++ b/apps/emqx/src/emqx_trace/emqx_trace_formatter.erl @@ -23,35 +23,35 @@ -spec format(LogEvent, Config) -> unicode:chardata() when LogEvent :: logger:log_event(), Config :: logger:config(). -format(#{level := debug, trace_event := Event, meta := Meta, msg := Msg}, +format(#{level := debug, meta := Meta = #{trace_tag := Tag}, msg := Msg}, #{payload_encode := PEncode}) -> Time = calendar:system_time_to_rfc3339(erlang:system_time(second)), ClientId = to_iolist(maps:get(clientid, Meta, "")), Peername = maps:get(peername, Meta, ""), MetaBin = format_meta(Meta, PEncode), - [Time, " [", Event, "] ", ClientId, "@", Peername, " msg: ", Msg, MetaBin, "\n"]; + [Time, " [", Tag, "] ", ClientId, "@", Peername, " msg: ", Msg, MetaBin, "\n"]; format(Event, Config) -> emqx_logger_textfmt:format(Event, Config). format_meta(Meta) -> Encode = emqx_trace_handler:payload_encode(), - format_meta_(Meta, Encode). + do_format_meta(Meta, Encode). format_meta(Meta0, Encode) -> - Meta1 = #{packet := Packet0, payload := Payload0} = format_meta_(Meta0, Encode), + Meta1 = #{packet := Packet0, payload := Payload0} = do_format_meta(Meta0, Encode), Packet = enrich(", packet: ", Packet0), Payload = enrich(", payload: ", Payload0), - Meta2 = maps:without([msg, clientid, peername, packet, payload], Meta1), + Meta2 = maps:without([msg, clientid, peername, packet, payload, trace_tag], Meta1), case Meta2 =:= #{} of true -> [Packet, Payload]; false -> [Packet, ", ", map_to_iolist(Meta2), Payload] end. enrich(_, "") -> ""; -enrich(Key, Bin) -> [Key, Bin]. +enrich(Key, IoData) -> [Key, IoData]. -format_meta_(Meta, Encode) -> +do_format_meta(Meta, Encode) -> Meta#{ packet => format_packet(maps:get(packet, Meta, undefined), Encode), payload => format_payload(maps:get(payload, Meta, undefined), Encode) diff --git a/apps/emqx_authn/src/simple_authn/emqx_authn_jwt.erl b/apps/emqx_authn/src/simple_authn/emqx_authn_jwt.erl index 7291abf29..d6f0b153e 100644 --- a/apps/emqx_authn/src/simple_authn/emqx_authn_jwt.erl +++ b/apps/emqx_authn/src/simple_authn/emqx_authn_jwt.erl @@ -272,7 +272,7 @@ verify(JWS, [JWK | More], VerifyClaims) -> {false, _, _} -> verify(JWS, More, VerifyClaims) catch - _:_Reason:_Stacktrace -> + _:_Reason -> ?TRACE("JWT", "authn_jwt_invalid_signature", #{jwk => JWK, jws => JWS}), {error, invalid_signature} end.