summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJerome Sautret <jerome.sautret@process-one.net>2015-09-21 17:07:44 +0200
committerJerome Sautret <jerome.sautret@process-one.net>2015-09-21 17:07:44 +0200
commitdf3862cf846ca1f788acf167bb283d1c32c80655 (patch)
tree4417f1a486c57e425902822a8b6957af88f4f5a4 /src
parentMerge branch 'master' of github.com:processone/ejabberd (diff)
Add set_loglevel command (EJABS-2524)
Diffstat (limited to '')
-rw-r--r--src/ejabberd_admin.erl12
-rw-r--r--src/ejabberd_logger.erl7
2 files changed, 17 insertions, 2 deletions
diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl
index 80342eec..dc4c10c8 100644
--- a/src/ejabberd_admin.erl
+++ b/src/ejabberd_admin.erl
@@ -29,6 +29,7 @@
-export([start/0, stop/0,
%% Server
status/0, reopen_log/0,
+ set_loglevel/1,
stop_kindly/2, send_service_message_all_mucs/2,
registered_vhosts/0,
reload_config/0,
@@ -102,6 +103,11 @@ commands() ->
{levelatom, atom},
{leveldesc, string}
]}}},
+ #ejabberd_commands{name = set_loglevel, tags = [logs, server],
+ desc = "Set the loglevel (0 to 5)",
+ module = ?MODULE, function = set_loglevel,
+ args = [{loglevel, integer}],
+ result = {logger, atom}},
#ejabberd_commands{name = update_list, tags = [server],
desc = "List modified modules that can be updated",
@@ -252,6 +258,12 @@ reopen_log() ->
ejabberd_hooks:run(reopen_log_hook, []),
ejabberd_logger:reopen_log().
+
+set_loglevel(LogLevel) ->
+ {module, Module} = ejabberd_logger:set(LogLevel),
+ Module.
+
+
%%%
%%% Stop Kindly
%%%
diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl
index 3bfe37c8..d1d039e1 100644
--- a/src/ejabberd_logger.erl
+++ b/src/ejabberd_logger.erl
@@ -157,7 +157,8 @@ set(LogLevel) when is_integer(LogLevel) ->
2 -> error;
3 -> warning;
4 -> info;
- 5 -> debug
+ 5 -> debug;
+ E -> throw({wrong_loglevel, E})
end,
case lager:get_loglevel(lager_console_backend) of
LagerLogLevel ->
@@ -194,8 +195,10 @@ reopen_log() ->
get() ->
p1_loglevel:get().
+set(LogLevel) when LogLevel >=0, LogLevel =< 5 ->
+ p1_loglevel:set(LogLevel);
set(LogLevel) ->
- p1_loglevel:set(LogLevel).
+ throw({wrong_loglevel, LogLevel}).
%%%===================================================================
%%% Internal functions