summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert@lshift.net>2008-08-29 15:57:25 +0100
committerHubert Plociniczak <hubert@lshift.net>2008-08-29 15:57:25 +0100
commiteca2d86ac28a34bd434ea6327c1bfc97aeb24e3e (patch)
tree68ca6279b79df577a64d1f38d0b4984e360209b1 /src
parentc183714de261b9ea977a191ace5adad3f8fd7f89 (diff)
downloadrabbitmq-server-git-eca2d86ac28a34bd434ea6327c1bfc97aeb24e3e.tar.gz
When appending the old log file fails always try
to create the handler. This can happen when the file we append to is not writable. Fixed missing case clause.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit.erl1
-rw-r--r--src/rabbit_error_logger_file_h.erl16
-rw-r--r--src/rabbit_sasl_report_file_h.erl16
3 files changed, 27 insertions, 6 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 6376d2ee5f..bf4cb013d2 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -267,6 +267,7 @@ error_log_location(Type) ->
wrapper -> gen_event:call(error_logger, rabbit_error_logger_file_h, filename)
end of
{error, no_log_file} -> tty;
+ {error, _} -> undefined;
File -> File
end.
diff --git a/src/rabbit_error_logger_file_h.erl b/src/rabbit_error_logger_file_h.erl
index d5c0ab0891..2de861b626 100644
--- a/src/rabbit_error_logger_file_h.erl
+++ b/src/rabbit_error_logger_file_h.erl
@@ -38,13 +38,23 @@
%% Used only when swapping handlers in log rotation
init({{File, Suffix}, []}) ->
case rabbit_misc:append_file(File, Suffix) of
- ok -> error_logger_file_h:init(File);
- Error -> Error
+ ok -> init(File);
+ Error ->
+ case init(File) of
+ {ok, FInfo} ->
+ error_logger:error_msg("Error occured while appending " ++
+ "~p log file to \"~s\":~n~p~n",
+ [File, [File, Suffix], Error]),
+ io:format("~nOrignal log file could not be appended to " ++
+ "\"~s\"~n", [[File, Suffix]]),
+ {ok, FInfo};
+ CriticalError -> CriticalError
+ end
end;
%% Used only when swapping handlers without performing
%% log rotation
init({File, []}) ->
- error_logger_file_h:init(File);
+ init(File);
init({_File, _Type} = FileInfo) ->
error_logger_file_h:init(FileInfo);
init(File) ->
diff --git a/src/rabbit_sasl_report_file_h.erl b/src/rabbit_sasl_report_file_h.erl
index 15f1bfe276..3b8a591ac0 100644
--- a/src/rabbit_sasl_report_file_h.erl
+++ b/src/rabbit_sasl_report_file_h.erl
@@ -39,13 +39,23 @@
%% log rotation
init({{File, Suffix}, []}) ->
case rabbit_misc:append_file(File, Suffix) of
- ok -> sasl_report_file_h:init({File, sasl_error_logger_type()});
- Error -> Error
+ ok -> init(File);
+ Error ->
+ case init(File) of
+ {ok, FInfo} ->
+ error_logger:error_msg("Error occured while appending " ++
+ "~p sasl log file to \"~s\":~n~p~n",
+ [File, [File, Suffix], Error]),
+ io:format("~nOrignal sasl log file could not be appended "
+ "to \"~s\"~n", [[File, Suffix]]),
+ {ok, FInfo};
+ CriticalError -> CriticalError
+ end
end;
%% Used only when swapping handlers without
%% doing any log rotation
init({File, []}) ->
- sasl_report_file_h:init({File, sasl_error_logger_type()});
+ init(File);
init({_File, _Type} = FileInfo) ->
sasl_report_file_h:init(FileInfo);
init(File) ->