summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Klishin <michael@novemberain.com>2016-01-15 02:37:58 +0300
committerMichael Klishin <michael@novemberain.com>2016-01-15 02:37:58 +0300
commit9a1b1caad973826a074a5f1e2fa25a8c6649832b (patch)
treebebe4059a0db7d8f3c49cf041db0d47849195125 /src
parentd54c06ab2ffd82f6f4d1edb19fd646b84f07ba0e (diff)
parentdbbe3d6e473fcfaa725e7aa0dda10601b63b9c27 (diff)
downloadrabbitmq-server-git-9a1b1caad973826a074a5f1e2fa25a8c6649832b.tar.gz
Merge pull request #543 from binarin/rabbitmq-server-rotate-logs-data-loss
Fix 'rabbitmqctl rotate_logs' behaviour
Diffstat (limited to 'src')
-rw-r--r--src/rabbit.erl7
-rw-r--r--src/rabbit_error_logger_file_h.erl3
-rw-r--r--src/rabbit_sasl_report_file_h.erl2
3 files changed, 11 insertions, 1 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index e4cf7bcbbd..1c4480b3e7 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -442,9 +442,14 @@ environment(App) ->
lists:keysort(1, [P || P = {K, _} <- application:get_all_env(App),
not lists:member(K, Ignore)]).
+rotate_logs_info("") ->
+ rabbit_log:info("Reopening logs", []);
+rotate_logs_info(Suffix) ->
+ rabbit_log:info("Rotating logs with suffix '~s'~n", [Suffix]).
+
rotate_logs(BinarySuffix) ->
Suffix = binary_to_list(BinarySuffix),
- rabbit_log:info("Rotating logs with suffix '~s'~n", [Suffix]),
+ rotate_logs_info(Suffix),
log_rotation_result(rotate_logs(log_location(kernel),
Suffix,
rabbit_error_logger_file_h),
diff --git a/src/rabbit_error_logger_file_h.erl b/src/rabbit_error_logger_file_h.erl
index 9268c10a35..930aead392 100644
--- a/src/rabbit_error_logger_file_h.erl
+++ b/src/rabbit_error_logger_file_h.erl
@@ -55,6 +55,9 @@ get_depth() ->
%% lib/stdlib/src/error_logger_file_h.erl from R14B3 was copied as
%% init_file/2 and changed so that it opens the file in 'append' mode.
+%% Log rotation with empty suffix should result only in file re-opening.
+init({{File, ""}, _}) ->
+ init(File);
%% Used only when swapping handlers in log rotation, pre OTP 18.1
init({{File, Suffix}, []}) ->
rotate_logs(File, Suffix),
diff --git a/src/rabbit_sasl_report_file_h.erl b/src/rabbit_sasl_report_file_h.erl
index 9ba24ab325..9c6d7657f2 100644
--- a/src/rabbit_sasl_report_file_h.erl
+++ b/src/rabbit_sasl_report_file_h.erl
@@ -36,6 +36,8 @@
%% Used only when swapping handlers and performing
%% log rotation
+init({{File, ""}, _}) ->
+ init(File);
init({{File, Suffix}, []}) ->
case rabbit_file:append_file(File, Suffix) of
ok -> file:delete(File),