From 95c157409b1e6cf82a5dc40c23de91624d495d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Wed, 13 Jan 2021 11:47:51 +0100 Subject: [PATCH] Fix handling of log_rotate_size: infinity This should fix issue reported in #3462 --- ejabberdctl.template | 2 +- src/ejabberd_logger.erl | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ejabberdctl.template b/ejabberdctl.template index 256a40c7a..b2bfb38af 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -87,7 +87,7 @@ ERL_INETRC="$ETC_DIR"/inetrc # define ejabberd parameters EJABBERD_OPTS="$EJABBERD_OPTS\ -$(sed '/^log_rotate_size/!d;s/:[ \t]*\([0-9]*\).*/ \1/;s/^/ /' "$EJABBERD_CONFIG_PATH")\ +$(sed '/^log_rotate_size/!d;s/:[ \t]*\([0-9]\{1,\}\).*/ \1/;s/:[ \t]*\(infinity\).*/ \1/;s/^/ /' "$EJABBERD_CONFIG_PATH")\ $(sed '/^log_rotate_count/!d;s/:[ \t]*\([0-9]*\).*/ \1/;s/^/ /' "$EJABBERD_CONFIG_PATH")" [ -n "$EJABBERD_OPTS" ] && EJABBERD_OPTS="-ejabberd $EJABBERD_OPTS" EJABBERD_OPTS="-mnesia dir \"$SPOOL_DIR\" $MNESIA_OPTIONS $EJABBERD_OPTS -s ejabberd" diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl index 805a19aff..64df3ef10 100644 --- a/src/ejabberd_logger.erl +++ b/src/ejabberd_logger.erl @@ -81,6 +81,8 @@ get_integer_env(Name, Default) -> case application:get_env(ejabberd, Name) of {ok, I} when is_integer(I), I>=0 -> I; + {ok, infinity} -> + infinity; undefined -> Default; {ok, Junk} -> @@ -142,7 +144,10 @@ do_start(Level) -> ErrorLog = filename:join([Dir, "error.log"]), CrashLog = filename:join([Dir, "crash.log"]), LogRotateDate = get_string_env(log_rotate_date, ""), - LogRotateSize = get_integer_env(log_rotate_size, 10*1024*1024), + LogRotateSize = case get_integer_env(log_rotate_size, 10*1024*1024) of + infinity -> 0; + V -> V + end, LogRotateCount = get_integer_env(log_rotate_count, 1), LogRateLimit = get_integer_env(log_rate_limit, 100), ConsoleLevel = case get_lager_version() >= "3.6.0" of