Support module level logger header
This commit is contained in:
parent
3f1b788fe8
commit
c64751a53c
|
@ -14,6 +14,8 @@
|
||||||
|
|
||||||
%% debug | info | notice | warning | error | critical | alert | emergency
|
%% debug | info | notice | warning | error | critical | alert | emergency
|
||||||
|
|
||||||
|
-compile({parse_transform, emqx_logger}).
|
||||||
|
|
||||||
-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)).
|
||||||
|
|
||||||
|
@ -39,5 +41,5 @@
|
||||||
|
|
||||||
-define(LOG(Level, Format, Args),
|
-define(LOG(Level, Format, Args),
|
||||||
begin
|
begin
|
||||||
(logger:log(Level,#{},#{report_cb => fun(_) -> {(Format), (Args)} end}))
|
(logger:log(Level,#{},#{report_cb => fun(_) -> {'$logger_header'()++(Format), (Args)} end}))
|
||||||
end).
|
end).
|
||||||
|
|
|
@ -48,6 +48,8 @@
|
||||||
, get_log_handler/1
|
, get_log_handler/1
|
||||||
]).
|
]).
|
||||||
|
|
||||||
|
-export([parse_transform/2]).
|
||||||
|
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
%% APIs
|
%% APIs
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
|
@ -120,6 +122,9 @@ set_log_level(Level) ->
|
||||||
{error, Error} -> {error, {primary_logger_level, Error}}
|
{error, Error} -> {error, {primary_logger_level, Error}}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
parse_transform(AST, _Opts) ->
|
||||||
|
trans(AST, "", []).
|
||||||
|
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
%% Internal Functions
|
%% Internal Functions
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
|
@ -160,3 +165,26 @@ rollback([{ID, Level} | List]) ->
|
||||||
rollback(List);
|
rollback(List);
|
||||||
rollback([]) -> ok.
|
rollback([]) -> ok.
|
||||||
|
|
||||||
|
%% Generate a function '$logger_header'/0 into the source code
|
||||||
|
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) ->
|
||||||
|
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 ++ " ".
|
||||||
|
|
Loading…
Reference in New Issue