summaryrefslogtreecommitdiff
path: root/src/rabbit_error_logger.erl
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2013-08-01 04:58:32 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2013-08-01 04:58:32 +0100
commit28b7430489dce992c935a04d51b8b87f6a0e3538 (patch)
tree121ae765f362285c4fd593ea922e1a6ae14d1f95 /src/rabbit_error_logger.erl
parent56cf607740f4db887b8b97058b4f85b08a89a239 (diff)
downloadrabbitmq-server-28b7430489dce992c935a04d51b8b87f6a0e3538.tar.gz
add/remove log handler at precise point in system lifecyclebug25594
Previously the handler stuck around for too long in the event of failed startup, resulting in spurious errors.
Diffstat (limited to 'src/rabbit_error_logger.erl')
-rw-r--r--src/rabbit_error_logger.erl13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/rabbit_error_logger.erl b/src/rabbit_error_logger.erl
index 184dcf17..17ed8563 100644
--- a/src/rabbit_error_logger.erl
+++ b/src/rabbit_error_logger.erl
@@ -22,7 +22,7 @@
-behaviour(gen_event).
--export([boot/0]).
+-export([start/0, stop/0]).
-export([init/1, terminate/2, code_change/3, handle_call/2, handle_event/2,
handle_info/2]).
@@ -31,16 +31,23 @@
-ifdef(use_specs).
--spec(boot/0 :: () -> 'ok').
+-spec(start/0 :: () -> 'ok').
+-spec(stop/0 :: () -> 'ok').
-endif.
%%----------------------------------------------------------------------------
-boot() ->
+start() ->
{ok, DefaultVHost} = application:get_env(default_vhost),
ok = error_logger:add_report_handler(?MODULE, [DefaultVHost]).
+stop() ->
+ terminated_ok = error_logger:delete_report_handler(rabbit_error_logger),
+ ok.
+
+%%----------------------------------------------------------------------------
+
init([DefaultVHost]) ->
#exchange{} = rabbit_exchange:declare(
rabbit_misc:r(DefaultVHost, exchange, ?LOG_EXCH_NAME),