diff options
author | Paweł Chmielowski <pchmielowski@process-one.net> | 2021-01-27 09:24:05 +0100 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2021-01-27 09:24:05 +0100 |
commit | 3516d2053cc8e0375310dc3be86529868fa196f1 (patch) | |
tree | 1112f92a111a16669bcf6f8083e71fc88ab735a7 | |
parent | Don't fetch subscribers list in room_unused_* (diff) |
Add 'ejabberdctl foreground-quiet'
This starts ejabberd without detaching process but setups
console logging to display only critical messages.
-rwxr-xr-x | ejabberdctl.template | 4 | ||||
-rw-r--r-- | src/ejabberd_logger.erl | 23 |
2 files changed, 24 insertions, 3 deletions
diff --git a/ejabberdctl.template b/ejabberdctl.template index b2bfb38af..9c7485fc9 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -277,6 +277,10 @@ case $1 in check_start exec_erl "$ERLANG_NODE" $EJABBERD_OPTS -noinput ;; + foreground-quiet) + check_start + exec_erl "$ERLANG_NODE" $EJABBERD_OPTS -noinput -ejabberd quiet true + ;; live) livewarning check_start diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl index 64df3ef10..33ab32215 100644 --- a/src/ejabberd_logger.erl +++ b/src/ejabberd_logger.erl @@ -76,6 +76,12 @@ convert_loglevel(3) -> warning; convert_loglevel(4) -> info; convert_loglevel(5) -> debug. +quiet_mode() -> + case application:get_env(ejabberd, quiet) of + {ok, true} -> true; + _ -> false + end. + -spec get_integer_env(atom(), T) -> T. get_integer_env(Name, Default) -> case application:get_env(ejabberd, Name) of @@ -150,9 +156,13 @@ do_start(Level) -> end, LogRotateCount = get_integer_env(log_rotate_count, 1), LogRateLimit = get_integer_env(log_rate_limit, 100), + ConsoleLevel0 = case quiet_mode() of + true -> critical; + _ -> Level + end, ConsoleLevel = case get_lager_version() >= "3.6.0" of - true -> [{level, Level}]; - false -> Level + true -> [{level, ConsoleLevel0}]; + false -> ConsoleLevel0 end, application:set_env(lager, error_logger_hwm, LogRateLimit), application:set_env( @@ -212,10 +222,11 @@ set(Level) when ?is_loglevel(Level) -> ok; _ -> ConsoleLog = get_log_path(), + QuietMode = quiet_mode(), lists:foreach( fun({lager_file_backend, File} = H) when File == ConsoleLog -> lager:set_loglevel(H, Level); - (lager_console_backend = H) -> + (lager_console_backend = H) when not QuietMode -> lager:set_loglevel(H, Level); (elixir_logger_backend = H) -> lager:set_loglevel(H, Level); @@ -278,6 +289,12 @@ start(Level) -> try ok = logger:set_primary_config(level, Level), ok = logger:update_formatter_config(default, ConsoleFmtConfig), + case quiet_mode() of + true -> + ok = logger:set_handler_config(default, level, critical); + _ -> + ok + end, case logger:add_primary_filter(progress_report, {fun ?MODULE:progress_filter/2, stop}) of ok -> ok; |