diff --git a/apps/emqx/include/logger.hrl b/apps/emqx/include/logger.hrl index cfdf584f8..80799179f 100644 --- a/apps/emqx/include/logger.hrl +++ b/apps/emqx/include/logger.hrl @@ -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)). diff --git a/apps/emqx/src/emqx_logger.erl b/apps/emqx/src/emqx_logger.erl index a733b0d3a..986ba11e0 100644 --- a/apps/emqx/src/emqx_logger.erl +++ b/apps/emqx/src/emqx_logger.erl @@ -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 ++ " ". diff --git a/apps/emqx/test/emqx_logger_SUITE.erl b/apps/emqx/test/emqx_logger_SUITE.erl index a087761b8..d09222b6b 100644 --- a/apps/emqx/test/emqx_logger_SUITE.erl +++ b/apps/emqx/test/emqx_logger_SUITE.erl @@ -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")).