refactor(logger): delete log header parse-transform

because now we have MFA in log
This commit is contained in:
Zaiming Shi 2021-07-31 18:35:30 +02:00
parent 0f5c5db841
commit e57f99168b
3 changed files with 0 additions and 83 deletions

View File

@ -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)).

View File

@ -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 ++ " ".

View File

@ -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")).