diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit.erl | 27 | ||||
| -rw-r--r-- | src/rabbit_control.erl | 5 |
2 files changed, 31 insertions, 1 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl index e65d532b2a..86f5d7745a 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -27,7 +27,7 @@ -behaviour(application). --export([start/0, stop/0, stop_and_halt/0, status/0]). +-export([start/0, stop/0, stop_and_halt/0, status/0, reopen_logs/0]). -export([start/2, stop/1]). @@ -49,6 +49,7 @@ -spec(start/0 :: () -> 'ok'). -spec(stop/0 :: () -> 'ok'). -spec(stop_and_halt/0 :: () -> 'ok'). +-spec(reopen_logs/0 :: () -> 'ok'). -spec(status/0 :: () -> [{running_applications, [{atom(), string(), string()}]} | {nodes, [node()]} | @@ -85,6 +86,10 @@ status() -> [{running_applications, application:which_applications()}] ++ rabbit_mnesia:status(). +reopen_logs() -> + ok = reopen_main_logs(), + ok = reopen_sasl_logs(). + %%-------------------------------------------------------------------- manage_applications(Iterate, Do, Undo, SkipError, ErrorTag, Apps) -> @@ -280,3 +285,23 @@ sasl_log_location() -> {ok, Bad} -> throw({error, {cannot_log_to_file, Bad}}); _ -> undefined end. + +reopen_main_logs() -> + case error_log_location() of + tty -> ok; + File -> error_logger:swap_handler({logfile, File}) + end. + +reopen_sasl_logs() -> + try + case sasl_log_location() of + undefined -> ok; + tty -> ok; + {file, File} -> gen_event:swap_handler(error_logger, + {sasl_error_logger, swap}, + {sasl_report_file_h, File}); + _ -> ok + end + catch + _ -> ok + end. diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl index ad796b61ae..115af8a63d 100644 --- a/src/rabbit_control.erl +++ b/src/rabbit_control.erl @@ -73,6 +73,7 @@ Available commands: force_reset cluster <ClusterNode> ... status + reopen_logs add_user <UserName> <Password> delete_user <UserName> @@ -124,6 +125,10 @@ action(reset, Node, []) -> io:format("Resetting node ~p ...", [Node]), call(Node, {rabbit_mnesia, reset, []}); +action(reopen_logs, Node, []) -> + io:format("Reopening logs for node ~p ...", [Node]), + call(Node, {rabbit, reopen_logs, []}); + action(force_reset, Node, []) -> io:format("Forcefully resetting node ~p ...", [Node]), call(Node, {rabbit_mnesia, force_reset, []}); |
