diff options
-rwxr-xr-x | scripts/rabbitmq-server | 9 | ||||
-rw-r--r-- | src/rabbit.erl | 4 | ||||
-rw-r--r-- | src/rabbit_error_logger_file_h.erl | 15 |
3 files changed, 16 insertions, 12 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server index 2f80eb96..e33ae733 100755 --- a/scripts/rabbitmq-server +++ b/scripts/rabbitmq-server @@ -58,11 +58,6 @@ fi [ "x" = "x$RABBITMQ_LOGS" ] && RABBITMQ_LOGS="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}.log" [ "x" = "x$RABBITMQ_SASL_LOGS" ] && RABBITMQ_SASL_LOGS=${SASL_LOGS} [ "x" = "x$RABBITMQ_SASL_LOGS" ] && RABBITMQ_SASL_LOGS="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}-sasl.log" -[ "x" = "x$RABBITMQ_BACKUP_EXTENSION" ] && RABBITMQ_BACKUP_EXTENSION=${BACKUP_EXTENSION} -[ "x" = "x$RABBITMQ_BACKUP_EXTENSION" ] && RABBITMQ_BACKUP_EXTENSION=".1" - -[ -f "${RABBITMQ_LOGS}" ] && cat "${RABBITMQ_LOGS}" >> "${RABBITMQ_LOGS}${RABBITMQ_BACKUP_EXTENSION}" -[ -f "${RABBITMQ_SASL_LOGS}" ] && cat "${RABBITMQ_SASL_LOGS}" >> "${RABBITMQ_SASL_LOGS}${RABBITMQ_BACKUP_EXTENSION}" RABBITMQ_START_RABBIT= [ "x" = "x$RABBITMQ_ALLOW_INPUT" ] && RABBITMQ_START_RABBIT='-noinput' @@ -107,8 +102,8 @@ exec erl \ ${RABBITMQ_SERVER_ERL_ARGS} \ ${RABBITMQ_LISTEN_ARG} \ -sasl errlog_type error \ - -kernel error_logger '{file,"'${RABBITMQ_LOGS}'"}' \ - -sasl sasl_error_logger '{file,"'${RABBITMQ_SASL_LOGS}'"}' \ + -rabbit error_logger '{file,"'${RABBITMQ_LOGS}'"}' \ + -rabbit sasl_error_logger '{file,"'${RABBITMQ_SASL_LOGS}'"}' \ -os_mon start_cpu_sup true \ -os_mon start_disksup false \ -os_mon start_memsup false \ diff --git a/src/rabbit.erl b/src/rabbit.erl index 46f7d9d1..c855a806 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -446,7 +446,7 @@ ensure_working_log_handlers() -> error_logger_tty_h, log_location(kernel), Handlers), - + error_logger:delete_report_handler(error_logger_tty_h), ok = ensure_working_log_handler(sasl_report_file_h, rabbit_sasl_report_file_h, sasl_report_tty_h, @@ -477,7 +477,7 @@ ensure_working_log_handler(OldFHandler, NewFHandler, TTYHandler, end. log_location(Type) -> - case application:get_env(Type, case Type of + case application:get_env(rabbit, case Type of kernel -> error_logger; sasl -> sasl_error_logger end) of diff --git a/src/rabbit_error_logger_file_h.erl b/src/rabbit_error_logger_file_h.erl index 7e9ebc4f..dacd0de4 100644 --- a/src/rabbit_error_logger_file_h.erl +++ b/src/rabbit_error_logger_file_h.erl @@ -45,12 +45,21 @@ init({{File, _}, error}) -> %% log rotation init({File, []}) -> init(File); -init({File, _Type} = FileInfo) -> +init({File, {error_logger, []}}) -> rabbit_misc:ensure_parent_dirs_exist(File), - error_logger_file_h:init(FileInfo); + init_file(File, error_handler); init(File) -> rabbit_misc:ensure_parent_dirs_exist(File), - error_logger_file_h:init(File). + init_file(File, []). + +init_file(File, PrevHandler) -> + process_flag(trap_exit, true), + case file:open(File, [append]) of + {ok,Fd} -> + {ok, {Fd, File, PrevHandler}}; + Error -> + Error + end. handle_event(Event, State) -> error_logger_file_h:handle_event(Event, State). |