aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_logger.erl
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-06-14 12:33:26 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-06-14 12:33:26 +0300
commita02cff0e780bb735531594c4ece81e8628f79782 (patch)
tree6fe7d8219d14f58183be1741fcea262c216db447 /src/ejabberd_logger.erl
parentReturn 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.erl40
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