diff options
author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-08-02 16:06:44 +0100 |
---|---|---|
committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-08-02 16:06:44 +0100 |
commit | 4c735cdfcd26e654a6506f1823d354b9f840dffb (patch) | |
tree | 70cc83b240e2f5cdc4d3ad28edd84623e5550a99 | |
parent | e2c57c78fcc0281eeb78dd1914287e539265244c (diff) | |
download | rabbitmq-server-4c735cdfcd26e654a6506f1823d354b9f840dffb.tar.gz |
log rabbitmqctl invocations on the remote node
-rw-r--r-- | src/rabbit_control.erl | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl index 6eb1aaba..8b20ad51 100644 --- a/src/rabbit_control.erl +++ b/src/rabbit_control.erl @@ -17,7 +17,7 @@ -module(rabbit_control). -include("rabbit.hrl"). --export([start/0, stop/0, action/5, diagnostics/1]). +-export([start/0, stop/0, action/5, diagnostics/1, log_anytime/2]). -define(RPC_TIMEOUT, infinity). -define(WAIT_FOR_VM_ATTEMPTS, 5). @@ -51,6 +51,7 @@ -> 'ok'). -spec(diagnostics/1 :: (node()) -> [{string(), [any()]}]). -spec(usage/0 :: () -> no_return()). +-spec(log_anytime/2 :: (string(), [term()]) -> ok). -endif. @@ -73,6 +74,9 @@ start() -> Command = list_to_atom(Command0), Quiet = proplists:get_bool(?QUIET_OPT, Opts1), Node = proplists:get_value(?NODE_OPT, Opts1), + rpc_call(Node, rabbit_control, log_anytime, + ["~p executing 'rabbitmqctl ~p'~n", + [node(), init:get_plain_arguments()]]), Inform = case Quiet of true -> fun (_Format, _Args1) -> ok end; false -> fun (Format, Args1) -> @@ -109,6 +113,14 @@ start() -> fmt_stderr(Format, Args) -> rabbit_misc:format_stderr(Format ++ "~n", Args). +%% Log an info item on a remote node regardless of whether rabbit is +%% running there or not: first change the group leader to that of the +%% remote node, then use the standard error logger, because rabbit's +%% might not be running. +log_anytime(Format, Args) -> + group_leader(whereis(user), self()), + error_logger:info_msg(Format, Args). + print_report(Node, {Descr, Module, InfoFun, KeysFun}) -> io:format("~s:~n", [Descr]), print_report0(Node, {Module, InfoFun, KeysFun}, []). |