summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2021-01-13 11:47:51 +0100
committerPaweł Chmielowski <pchmielowski@process-one.net>2021-01-13 11:48:46 +0100
commit95c157409b1e6cf82a5dc40c23de91624d495d9d (patch)
tree617b2e1f637586212590feda8242c9bad7e3281f
parentMention gettext and weblate to update translations (diff)
Fix handling of log_rotate_size: infinity
This should fix issue reported in #3462
Diffstat (limited to '')
-rwxr-xr-xejabberdctl.template2
-rw-r--r--src/ejabberd_logger.erl7
2 files changed, 7 insertions, 2 deletions
diff --git a/ejabberdctl.template b/ejabberdctl.template
index 256a40c7..b2bfb38a 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 805a19af..64df3ef1 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