refactor(logger): stop using anonymous fun for logging
This commit is contained in:
parent
df69a9c031
commit
0f5c5db841
|
@ -14,10 +14,12 @@
|
||||||
%% limitations under the License.
|
%% limitations under the License.
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
%% debug | info | notice | warning | error | critical | alert | emergency
|
-ifndef(EMQX_LOGGER_HRL).
|
||||||
|
-define(EMQX_LOGGER_HRL, true).
|
||||||
|
|
||||||
-compile({parse_transform, emqx_logger}).
|
-compile({parse_transform, emqx_logger}).
|
||||||
|
|
||||||
|
%% debug | info | notice | warning | error | critical | alert | emergency
|
||||||
-define(DEBUG(Format), ?LOG(debug, Format, [])).
|
-define(DEBUG(Format), ?LOG(debug, Format, [])).
|
||||||
-define(DEBUG(Format, Args), ?LOG(debug, Format, Args)).
|
-define(DEBUG(Format, Args), ?LOG(debug, Format, Args)).
|
||||||
|
|
||||||
|
@ -41,10 +43,21 @@
|
||||||
|
|
||||||
-define(LOG(Level, Format), ?LOG(Level, Format, [])).
|
-define(LOG(Level, Format), ?LOG(Level, Format, [])).
|
||||||
|
|
||||||
-define(LOG(Level, Format, Args),
|
-define(LOG(Level, Format, Args, Meta),
|
||||||
begin
|
%% check 'allow' here so we do not have to pass an anonymous function
|
||||||
(logger:log(Level,#{},#{report_cb => fun(_) -> {'$logger_header'()++(Format), (Args)} end,
|
%% down to logger which may cause `badfun` exception during upgrade
|
||||||
mfa => {?MODULE, ?FUNCTION_NAME, ?FUNCTION_ARITY},
|
case logger:allow(Level, ?MODULE) of
|
||||||
line => ?LINE}))
|
true ->
|
||||||
|
logger:log(Level, (Format), (Args),
|
||||||
|
(Meta)#{ mfa => <<(atom_to_binary(?MODULE, utf8))/binary, $:,
|
||||||
|
(atom_to_binary(?FUNCTION_NAME, utf8))/binary, $/,
|
||||||
|
(integer_to_binary(?FUNCTION_ARITY))/binary>>
|
||||||
|
, line => ?LINE
|
||||||
|
});
|
||||||
|
false ->
|
||||||
|
ok
|
||||||
end).
|
end).
|
||||||
|
|
||||||
|
-define(LOG(Level, Format, Args), ?LOG(Level, Format, Args, #{})).
|
||||||
|
|
||||||
|
-endif.
|
||||||
|
|
|
@ -197,12 +197,18 @@ json_obj(Data, Config) ->
|
||||||
json_kv(K, V, D, Config)
|
json_kv(K, V, D, Config)
|
||||||
end, maps:new(), Data).
|
end, maps:new(), Data).
|
||||||
|
|
||||||
json_kv(mfa, {M, F, A}, Data, _Config) -> %% emqx/snabbkaffe
|
json_kv(mfa, {M, F, A}, Data, _Config) -> %% snabbkaffe
|
||||||
maps:put(mfa, <<(atom_to_binary(M, utf8))/binary, $:,
|
maps:put(mfa, <<(atom_to_binary(M, utf8))/binary, $:,
|
||||||
(atom_to_binary(F, utf8))/binary, $/,
|
(atom_to_binary(F, utf8))/binary, $/,
|
||||||
(integer_to_binary(A))/binary>>, Data);
|
(integer_to_binary(A))/binary>>, Data);
|
||||||
json_kv('$kind', Kind, Data, Config) -> %% snabbkaffe
|
json_kv('$kind', Kind, Data, Config) -> %% snabbkaffe
|
||||||
maps:put(msg, json(Kind, Config), Data);
|
maps:put(msg, json(Kind, Config), Data);
|
||||||
|
json_kv(gl, _, Data, _Config) ->
|
||||||
|
%% drop gl because it's not interesting
|
||||||
|
Data;
|
||||||
|
json_kv(file, _, Data, _Config) ->
|
||||||
|
%% drop 'file' because we have mfa
|
||||||
|
Data;
|
||||||
json_kv(K0, V, Data, Config) ->
|
json_kv(K0, V, Data, Config) ->
|
||||||
K = json_key(K0),
|
K = json_key(K0),
|
||||||
case is_map(V) of
|
case is_map(V) of
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
, peername % formatted as a part of templated message
|
, peername % formatted as a part of templated message
|
||||||
, clientid % formatted as a part of templated message
|
, clientid % formatted as a part of templated message
|
||||||
, gl % not interesting
|
, gl % not interesting
|
||||||
|
, file
|
||||||
]).
|
]).
|
||||||
|
|
||||||
check_config(X) -> logger_formatter:check_config(X).
|
check_config(X) -> logger_formatter:check_config(X).
|
||||||
|
|
Loading…
Reference in New Issue