From df3862cf846ca1f788acf167bb283d1c32c80655 Mon Sep 17 00:00:00 2001 From: Jerome Sautret Date: Mon, 21 Sep 2015 17:07:44 +0200 Subject: [PATCH] Add set_loglevel command (EJABS-2524) --- src/ejabberd_admin.erl | 12 ++++++++++++ src/ejabberd_logger.erl | 7 +++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl index 80342eecd..dc4c10c87 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 3bfe37c80..d1d039e1e 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