Add specs for emqx_logger
This commit is contained in:
parent
2fcda7d891
commit
cca725db5f
|
@ -52,78 +52,121 @@
|
||||||
|
|
||||||
-export([parse_transform/2]).
|
-export([parse_transform/2]).
|
||||||
|
|
||||||
|
-type(peername_str() :: list()).
|
||||||
|
-type(logger_dst() :: file:filename() | console | unknown).
|
||||||
|
-type(logger_handler_info() :: {logger:handler_id(), logger:level(), logger_dst()}).
|
||||||
|
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
%% APIs
|
%% APIs
|
||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
-spec(debug(unicode:chardata()) -> ok).
|
||||||
debug(Msg) ->
|
debug(Msg) ->
|
||||||
logger:debug(Msg).
|
logger:debug(Msg).
|
||||||
|
|
||||||
|
-spec(debug(io:format(), [term()]) -> ok).
|
||||||
debug(Format, Args) ->
|
debug(Format, Args) ->
|
||||||
logger:debug(Format, Args).
|
logger:debug(Format, Args).
|
||||||
|
|
||||||
|
-spec(debug(logger:metadata(), io:format(), [term()]) -> ok).
|
||||||
debug(Metadata, Format, Args) when is_map(Metadata) ->
|
debug(Metadata, Format, Args) when is_map(Metadata) ->
|
||||||
logger:debug(Format, Args, Metadata).
|
logger:debug(Format, Args, Metadata).
|
||||||
|
|
||||||
|
|
||||||
|
-spec(info(unicode:chardata()) -> ok).
|
||||||
info(Msg) ->
|
info(Msg) ->
|
||||||
logger:info(Msg).
|
logger:info(Msg).
|
||||||
|
|
||||||
|
-spec(info(io:format(), [term()]) -> ok).
|
||||||
info(Format, Args) ->
|
info(Format, Args) ->
|
||||||
logger:info(Format, Args).
|
logger:info(Format, Args).
|
||||||
|
|
||||||
|
-spec(info(logger:metadata(), io:format(), [term()]) -> ok).
|
||||||
info(Metadata, Format, Args) when is_map(Metadata) ->
|
info(Metadata, Format, Args) when is_map(Metadata) ->
|
||||||
logger:info(Format, Args, Metadata).
|
logger:info(Format, Args, Metadata).
|
||||||
|
|
||||||
|
|
||||||
|
-spec(warning(unicode:chardata()) -> ok).
|
||||||
warning(Msg) ->
|
warning(Msg) ->
|
||||||
logger:warning(Msg).
|
logger:warning(Msg).
|
||||||
|
|
||||||
|
-spec(warning(io:format(), [term()]) -> ok).
|
||||||
warning(Format, Args) ->
|
warning(Format, Args) ->
|
||||||
logger:warning(Format, Args).
|
logger:warning(Format, Args).
|
||||||
|
|
||||||
|
-spec(warning(logger:metadata(), io:format(), [term()]) -> ok).
|
||||||
warning(Metadata, Format, Args) when is_map(Metadata) ->
|
warning(Metadata, Format, Args) when is_map(Metadata) ->
|
||||||
logger:warning(Format, Args, Metadata).
|
logger:warning(Format, Args, Metadata).
|
||||||
|
|
||||||
|
|
||||||
|
-spec(error(unicode:chardata()) -> ok).
|
||||||
error(Msg) ->
|
error(Msg) ->
|
||||||
logger:error(Msg).
|
logger:error(Msg).
|
||||||
|
-spec(error(io:format(), [term()]) -> ok).
|
||||||
error(Format, Args) ->
|
error(Format, Args) ->
|
||||||
logger:error(Format, Args).
|
logger:error(Format, Args).
|
||||||
|
-spec(error(logger:metadata(), io:format(), [term()]) -> ok).
|
||||||
error(Metadata, Format, Args) when is_map(Metadata) ->
|
error(Metadata, Format, Args) when is_map(Metadata) ->
|
||||||
logger:error(Format, Args, Metadata).
|
logger:error(Format, Args, Metadata).
|
||||||
|
|
||||||
|
|
||||||
|
-spec(critical(unicode:chardata()) -> ok).
|
||||||
critical(Msg) ->
|
critical(Msg) ->
|
||||||
logger:critical(Msg).
|
logger:critical(Msg).
|
||||||
|
|
||||||
|
-spec(critical(io:format(), [term()]) -> ok).
|
||||||
critical(Format, Args) ->
|
critical(Format, Args) ->
|
||||||
logger:critical(Format, Args).
|
logger:critical(Format, Args).
|
||||||
|
|
||||||
|
-spec(critical(logger:metadata(), io:format(), [term()]) -> ok).
|
||||||
critical(Metadata, Format, Args) when is_map(Metadata) ->
|
critical(Metadata, Format, Args) when is_map(Metadata) ->
|
||||||
logger:critical(Format, Args, Metadata).
|
logger:critical(Format, Args, Metadata).
|
||||||
|
|
||||||
|
-spec(set_metadata_client_id(emqx_types:client_id()) -> ok).
|
||||||
set_metadata_client_id(ClientId) ->
|
set_metadata_client_id(ClientId) ->
|
||||||
set_proc_metadata(#{client_id => ClientId}).
|
set_proc_metadata(#{client_id => ClientId}).
|
||||||
|
|
||||||
|
-spec(set_metadata_peername(peername_str()) -> ok).
|
||||||
set_metadata_peername(Peername) ->
|
set_metadata_peername(Peername) ->
|
||||||
set_proc_metadata(#{peername => Peername}).
|
set_proc_metadata(#{peername => Peername}).
|
||||||
|
|
||||||
|
-spec(set_proc_metadata(logger:metadata()) -> ok).
|
||||||
set_proc_metadata(Meta) ->
|
set_proc_metadata(Meta) ->
|
||||||
logger:update_process_metadata(Meta).
|
logger:update_process_metadata(Meta).
|
||||||
|
|
||||||
|
-spec(get_primary_log_level() -> logger:level()).
|
||||||
get_primary_log_level() ->
|
get_primary_log_level() ->
|
||||||
#{level := Level} = logger:get_primary_config(),
|
#{level := Level} = logger:get_primary_config(),
|
||||||
Level.
|
Level.
|
||||||
|
|
||||||
|
-spec(set_primary_log_level(logger:level()) -> ok | {error, term()}).
|
||||||
set_primary_log_level(Level) ->
|
set_primary_log_level(Level) ->
|
||||||
logger:set_primary_config(level, Level).
|
logger:set_primary_config(level, Level).
|
||||||
|
|
||||||
|
-spec(get_log_handlers() -> [logger_handler_info()]).
|
||||||
get_log_handlers() ->
|
get_log_handlers() ->
|
||||||
lists:map(fun log_hanlder_info/1, logger:get_handler_config()).
|
lists:map(fun log_hanlder_info/1, logger:get_handler_config()).
|
||||||
|
|
||||||
|
-spec(get_log_handler(logger:handler_id()) -> logger_handler_info()).
|
||||||
get_log_handler(HandlerId) ->
|
get_log_handler(HandlerId) ->
|
||||||
{ok, Conf} = logger:get_handler_config(HandlerId),
|
{ok, Conf} = logger:get_handler_config(HandlerId),
|
||||||
log_hanlder_info(Conf).
|
log_hanlder_info(Conf).
|
||||||
|
|
||||||
|
-spec(set_log_handler_level(logger:handler_id(), logger:level()) -> ok | {error, term()}).
|
||||||
set_log_handler_level(HandlerId, Level) ->
|
set_log_handler_level(HandlerId, Level) ->
|
||||||
logger:set_handler_config(HandlerId, level, Level).
|
logger:set_handler_config(HandlerId, level, Level).
|
||||||
|
|
||||||
%% Set both the primary and all handlers level in one command
|
%% @doc Set both the primary and all handlers level in one command
|
||||||
|
-spec(set_log_level(logger:handler_id()) -> ok | {error, term()}).
|
||||||
set_log_level(Level) ->
|
set_log_level(Level) ->
|
||||||
case set_primary_log_level(Level) of
|
case set_primary_log_level(Level) of
|
||||||
ok -> set_all_log_handlers_level(Level);
|
ok -> set_all_log_handlers_level(Level);
|
||||||
{error, Error} -> {error, {primary_logger_level, Error}}
|
{error, Error} -> {error, {primary_logger_level, Error}}
|
||||||
end.
|
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) ->
|
parse_transform(AST, _Opts) ->
|
||||||
trans(AST, "", []).
|
trans(AST, "", []).
|
||||||
|
|
||||||
|
@ -167,7 +210,10 @@ rollback([{ID, Level} | List]) ->
|
||||||
rollback(List);
|
rollback(List);
|
||||||
rollback([]) -> ok.
|
rollback([]) -> ok.
|
||||||
|
|
||||||
%% Generate a function '$logger_header'/0 into the source code
|
%% @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) ->
|
trans([], LogHeader, ResAST) ->
|
||||||
lists:reverse([header_fun(LogHeader) | ResAST]);
|
lists:reverse([header_fun(LogHeader) | ResAST]);
|
||||||
trans([{eof, L} | AST], LogHeader, ResAST) ->
|
trans([{eof, L} | AST], LogHeader, ResAST) ->
|
||||||
|
|
Loading…
Reference in New Issue