diff options
author | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-06-14 12:33:26 +0300 |
---|---|---|
committer | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-06-14 12:33:26 +0300 |
commit | a02cff0e780bb735531594c4ece81e8628f79782 (patch) | |
tree | 6fe7d8219d14f58183be1741fcea262c216db447 /src/ejabberd_logger.erl | |
parent | Return jid_malformed error when sending presence without nick to conference (diff) |
Use new configuration validator
Diffstat (limited to 'src/ejabberd_logger.erl')
-rw-r--r-- | src/ejabberd_logger.erl | 40 |
1 files changed, 12 insertions, 28 deletions
diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl index e35a769e5..529bc75f2 100644 --- a/src/ejabberd_logger.erl +++ b/src/ejabberd_logger.erl @@ -24,21 +24,21 @@ %%%------------------------------------------------------------------- -module(ejabberd_logger). --behaviour(ejabberd_config). - %% API -export([start/0, restart/0, reopen_log/0, rotate_log/0, get/0, set/1, - get_log_path/0, opt_type/1]). + get_log_path/0]). -type loglevel() :: 0 | 1 | 2 | 3 | 4 | 5. +-type lager_level() :: none | emergency | alert | critical | + error | warning | notice | info | debug. -spec start() -> ok. -spec get_log_path() -> string(). -spec reopen_log() -> ok. -spec rotate_log() -> ok. -spec get() -> {loglevel(), atom(), string()}. --spec set(loglevel() | {loglevel(), list()}) -> {module, module()}. +-spec set(loglevel()) -> ok. %%%=================================================================== %%% API @@ -64,17 +64,6 @@ get_log_path() -> end end. -opt_type(log_rotate_date) -> - fun(S) -> binary_to_list(iolist_to_binary(S)) end; -opt_type(log_rotate_size) -> - fun(I) when is_integer(I), I >= 0 -> I end; -opt_type(log_rotate_count) -> - fun(I) when is_integer(I), I >= 0 -> I end; -opt_type(log_rate_limit) -> - fun(I) when is_integer(I), I >= 0 -> I end; -opt_type(_) -> - [log_rotate_date, log_rotate_size, log_rotate_count, log_rate_limit]. - get_integer_env(Name, Default) -> case application:get_env(ejabberd, Name) of {ok, I} when is_integer(I), I>=0 -> @@ -130,7 +119,7 @@ do_start_for_logger(Level) -> ejabberd:start_app(lager), ok. -%% Start lager +-spec do_start(atom()) -> ok. do_start(Level) -> application:load(sasl), application:set_env(sasl, sasl_error_logger, false), @@ -162,11 +151,10 @@ do_start(Level) -> ejabberd:start_app(lager), lists:foreach(fun(Handler) -> lager:set_loghwm(Handler, LogRateLimit) - end, gen_event:which_handlers(lager_event)), - ok. + end, gen_event:which_handlers(lager_event)). restart() -> - Level = ejabberd_config:get_option(loglevel, 4), + Level = ejabberd_option:loglevel(), application:stop(lager), start(Level). @@ -199,7 +187,6 @@ get() -> debug -> {5, debug, "Debug"} end. -%% @spec (loglevel() | {loglevel(), list()}) -> {module, module()} set(LogLevel) when is_integer(LogLevel) -> LagerLogLevel = get_lager_loglevel(LogLevel), case get_lager_loglevel() of @@ -216,16 +203,12 @@ set(LogLevel) when is_integer(LogLevel) -> lager:set_loglevel(H, LagerLogLevel); (_) -> ok - end, gen_event:which_handlers(lager_event)) + end, get_lager_handlers()) end, case LogLevel of 5 -> xmpp:set_config([{debug, true}]); _ -> xmpp:set_config([{debug, false}]) - end, - {module, lager}; -set({_LogLevel, _}) -> - error_logger:error_msg("custom loglevels are not supported for 'lager'"), - {module, lager}. + end. get_lager_loglevel() -> Handlers = get_lager_handlers(), @@ -238,6 +221,7 @@ get_lager_loglevel() -> end, none, Handlers). +-spec get_lager_loglevel(loglevel()) -> lager_level(). get_lager_loglevel(LogLevel) -> case LogLevel of 0 -> none; @@ -245,8 +229,7 @@ get_lager_loglevel(LogLevel) -> 2 -> error; 3 -> warning; 4 -> info; - 5 -> debug; - E -> erlang:error({wrong_loglevel, E}) + 5 -> debug end. get_lager_handlers() -> @@ -257,6 +240,7 @@ get_lager_handlers() -> Result end. +-spec get_lager_version() -> string(). get_lager_version() -> Apps = application:loaded_applications(), case lists:keyfind(lager, 1, Apps) of |