refactor(logger): delete log header parse-transform
because now we have MFA in log
This commit is contained in:
parent
0f5c5db841
commit
e57f99168b
|
@ -17,8 +17,6 @@
|
|||
-ifndef(EMQX_LOGGER_HRL).
|
||||
-define(EMQX_LOGGER_HRL, true).
|
||||
|
||||
-compile({parse_transform, emqx_logger}).
|
||||
|
||||
%% debug | info | notice | warning | error | critical | alert | emergency
|
||||
-define(DEBUG(Format), ?LOG(debug, Format, [])).
|
||||
-define(DEBUG(Format, Args), ?LOG(debug, Format, Args)).
|
||||
|
|
|
@ -56,8 +56,6 @@
|
|||
, stop_log_handler/1
|
||||
]).
|
||||
|
||||
-export([parse_transform/2]).
|
||||
|
||||
-type(peername_str() :: list()).
|
||||
-type(logger_dst() :: file:filename() | console | unknown).
|
||||
-type(logger_handler_info() :: #{
|
||||
|
@ -234,13 +232,6 @@ set_log_level(Level) ->
|
|||
{error, Error} -> {error, {primary_logger_level, Error}}
|
||||
end.
|
||||
|
||||
%% @doc The parse transform for prefixing a module-specific logger header to the logs.
|
||||
%% The logger header can be specified by "-logger_header(Header)", where Header
|
||||
%% must be a string (list).
|
||||
%% @end
|
||||
parse_transform(AST, _Opts) ->
|
||||
trans(AST, "", []).
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Internal Functions
|
||||
%%--------------------------------------------------------------------
|
||||
|
@ -307,31 +298,3 @@ list_stopped_handler_config() ->
|
|||
undefined -> [];
|
||||
ConfList -> maps:values(ConfList)
|
||||
end.
|
||||
|
||||
%% @doc The following parse-transforms stripped off the module attribute named
|
||||
%% `-logger_header(Header)` (if there's one) from the source code, and then
|
||||
%% generate a function named '$logger_header'/0, which returns the logger header.
|
||||
%% @end
|
||||
trans([], LogHeader, ResAST) ->
|
||||
lists:reverse([header_fun(LogHeader) | ResAST]);
|
||||
trans([{eof, L} | AST], LogHeader, ResAST) ->
|
||||
lists:reverse([{eof, L}, header_fun(LogHeader) | ResAST]) ++ AST;
|
||||
trans([{attribute, _, module, _Mod} = M | AST], Header, ResAST) ->
|
||||
trans(AST, Header, [export_header_fun(), M | ResAST]);
|
||||
trans([{attribute, _, logger_header, Header} | AST], _, ResAST) ->
|
||||
io_lib:printable_list(Header) orelse erlang:error({invalid_string, Header}),
|
||||
trans(AST, Header, ResAST);
|
||||
trans([F | AST], LogHeader, ResAST) ->
|
||||
trans(AST, LogHeader, [F | ResAST]).
|
||||
|
||||
export_header_fun() ->
|
||||
{attribute,erl_anno:new(0),export,[{'$logger_header',0}]}.
|
||||
|
||||
header_fun(LogHeader) ->
|
||||
L = erl_anno:new(0),
|
||||
{function,L,'$logger_header',0,
|
||||
[{clause,L,
|
||||
[], [], [{string,L,pad(LogHeader)}]}]}.
|
||||
|
||||
pad("") -> "";
|
||||
pad(Str) -> Str ++ " ".
|
||||
|
|
|
@ -25,19 +25,6 @@
|
|||
-define(a, "a").
|
||||
-define(SUPPORTED_LEVELS, [emergency, alert, critical, error, warning, notice, info, debug]).
|
||||
|
||||
-define(PARSE_TRANS_TEST_CODE,
|
||||
"-module(mytest).\n"
|
||||
"-logger_header(\"[MyTest]\").\n"
|
||||
"-export([run/0]).\n"
|
||||
"-compile({parse_transform, logger_header}).\n"
|
||||
"run() -> '$logger_header'().").
|
||||
|
||||
-define(PARSE_TRANS_TEST_CODE2,
|
||||
"-module(mytest).\n"
|
||||
"-export([run/0]).\n"
|
||||
"-compile({parse_transform, logger_header}).\n"
|
||||
"run() -> '$logger_header'().").
|
||||
|
||||
all() -> emqx_ct:all(?MODULE).
|
||||
|
||||
init_per_testcase(_TestCase, Config) ->
|
||||
|
@ -132,37 +119,6 @@ t_start_stop_log_handler2(_) ->
|
|||
?assertMatch({error, {not_started, default}},
|
||||
?LOGGER:stop_log_handler(default)).
|
||||
|
||||
t_parse_transform(_) ->
|
||||
{ok, Toks, _EndLine} = erl_scan:string(?PARSE_TRANS_TEST_CODE),
|
||||
FormToks = split_toks_at_dot(Toks),
|
||||
Forms = [case erl_parse:parse_form(Ts) of
|
||||
{ok, Form} ->
|
||||
Form;
|
||||
{error, Reason} ->
|
||||
erlang:error({parse_form_error, Ts, Reason})
|
||||
end
|
||||
|| Ts <- FormToks],
|
||||
%ct:log("=====: ~p", [Forms]),
|
||||
AST1 = emqx_logger:parse_transform(Forms, []),
|
||||
%ct:log("=====: ~p", [AST1]),
|
||||
?assertNotEqual(false, lists:keyfind('$logger_header', 3, AST1)).
|
||||
|
||||
t_parse_transform_empty_header(_) ->
|
||||
{ok, Toks, _EndLine} = erl_scan:string(?PARSE_TRANS_TEST_CODE2),
|
||||
FormToks = split_toks_at_dot(Toks),
|
||||
Forms = [case erl_parse:parse_form(Ts) of
|
||||
{ok, Form} ->
|
||||
Form;
|
||||
{error, Reason} ->
|
||||
erlang:error({parse_form_error, Ts, Reason})
|
||||
end
|
||||
|| Ts <- FormToks],
|
||||
%ct:log("=====: ~p", [Forms]),
|
||||
AST2 = emqx_logger:parse_transform(Forms++[{eof, 15}], []),
|
||||
%ct:log("=====: ~p", [AST2]),
|
||||
?assertNotEqual(false, lists:keyfind('$logger_header', 3, AST2)).
|
||||
|
||||
|
||||
t_set_metadata_peername(_) ->
|
||||
?assertEqual(ok, ?LOGGER:set_metadata_peername("for_test")).
|
||||
|
||||
|
|
Loading…
Reference in New Issue