summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-08-12 11:09:19 +0100
committerSimon MacMullen <simon@rabbitmq.com>2014-08-12 11:09:19 +0100
commit6dfc266d0c5e7c9b13b93fadfe37b8ff44e517df (patch)
tree91be1a53e399f7f7f2f704b0d0b474ea98cd0259
parentb197894881d39df8436d9a27a95e5d140f06506f (diff)
parent344500abfbc00124f5659ab29954c782d49ded22 (diff)
downloadrabbitmq-server-6dfc266d0c5e7c9b13b93fadfe37b8ff44e517df.tar.gz
Merge bug26337
-rw-r--r--src/rabbit.erl28
-rw-r--r--src/rabbit_log.erl60
-rw-r--r--src/rabbit_misc.erl6
-rw-r--r--src/rabbit_mnesia.erl30
-rw-r--r--src/rabbit_networking.erl4
-rw-r--r--src/rabbit_plugins.erl2
-rw-r--r--src/rabbit_upgrade.erl6
7 files changed, 46 insertions, 90 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 191f04a4..9ce9ec84 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -74,13 +74,6 @@
{requires, external_infrastructure},
{enables, kernel_ready}]}).
--rabbit_boot_step({rabbit_log,
- [{description, "logging server"},
- {mfa, {rabbit_sup, start_restartable_child,
- [rabbit_log]}},
- {requires, external_infrastructure},
- {enables, kernel_ready}]}).
-
-rabbit_boot_step({rabbit_event,
[{description, "statistics event manager"},
{mfa, {rabbit_sup, start_restartable_child,
@@ -266,7 +259,7 @@ maybe_hipe_compile() ->
warn_if_hipe_compilation_failed(true) ->
ok;
warn_if_hipe_compilation_failed(false) ->
- error_logger:warning_msg(
+ rabbit_log:warning(
"Not HiPE compiling: HiPE not found in this Erlang installation.~n").
%% HiPE compilation happens before we have log handlers and can take a
@@ -502,9 +495,9 @@ start(normal, []) ->
case erts_version_check() of
ok ->
{ok, Vsn} = application:get_key(rabbit, vsn),
- error_logger:info_msg("Starting RabbitMQ ~s on Erlang ~s~n~s~n~s~n",
- [Vsn, erlang:system_info(otp_release),
- ?COPYRIGHT_MESSAGE, ?INFORMATION_MESSAGE]),
+ rabbit_log:info("Starting RabbitMQ ~s on Erlang ~s~n~s~n~s~n",
+ [Vsn, erlang:system_info(otp_release),
+ ?COPYRIGHT_MESSAGE, ?INFORMATION_MESSAGE]),
{ok, SupPid} = rabbit_sup:start_link(),
true = register(rabbit, self()),
print_banner(),
@@ -773,7 +766,7 @@ log_broker_started(Plugins) ->
fun() ->
PluginList = iolist_to_binary([rabbit_misc:format(" * ~s~n", [P])
|| P <- Plugins]),
- error_logger:info_msg(
+ rabbit_log:info(
"Server startup complete; ~b plugins started.~n~s",
[length(Plugins), PluginList]),
io:format(" completed with ~p plugins.~n", [length(Plugins)])
@@ -822,18 +815,18 @@ log_banner() ->
{K, V} ->
Format(K, V)
end || S <- Settings]),
- error_logger:info_msg("~s", [Banner]).
+ rabbit_log:info("~s", [Banner]).
warn_if_kernel_config_dubious() ->
case erlang:system_info(kernel_poll) of
true -> ok;
- false -> error_logger:warning_msg(
+ false -> rabbit_log:warning(
"Kernel poll (epoll, kqueue, etc) is disabled. Throughput "
"and CPU utilization may worsen.~n")
end,
AsyncThreads = erlang:system_info(thread_pool_size),
case AsyncThreads < ?ASYNC_THREADS_WARNING_THRESHOLD of
- true -> error_logger:warning_msg(
+ true -> rabbit_log:warning(
"Erlang VM is running with ~b I/O threads, "
"file I/O performance may worsen~n", [AsyncThreads]);
false -> ok
@@ -843,9 +836,8 @@ warn_if_kernel_config_dubious() ->
{ok, Val} -> Val
end,
case proplists:get_value(nodelay, IDCOpts, false) of
- false -> error_logger:warning_msg(
- "Nagle's algorithm is enabled for sockets, "
- "network I/O latency will be higher~n");
+ false -> rabbit_log:warning("Nagle's algorithm is enabled for sockets, "
+ "network I/O latency will be higher~n");
true -> ok
end.
diff --git a/src/rabbit_log.erl b/src/rabbit_log.erl
index f4df0e76..f60336a1 100644
--- a/src/rabbit_log.erl
+++ b/src/rabbit_log.erl
@@ -16,17 +16,8 @@
-module(rabbit_log).
--behaviour(gen_server).
-
--export([start_link/0]).
-
--export([init/1, handle_call/3, handle_cast/2, handle_info/2,
- terminate/2, code_change/3]).
-
-export([log/3, log/4, info/1, info/2, warning/1, warning/2, error/1, error/2]).
--define(SERVER, ?MODULE).
-
%%----------------------------------------------------------------------------
-ifdef(use_specs).
@@ -36,8 +27,6 @@
-type(category() :: atom()).
-type(level() :: 'info' | 'warning' | 'error').
--spec(start_link/0 :: () -> rabbit_types:ok_pid_or_error()).
-
-spec(log/3 :: (category(), level(), string()) -> 'ok').
-spec(log/4 :: (category(), level(), string(), [any()]) -> 'ok').
@@ -51,56 +40,29 @@
-endif.
%%----------------------------------------------------------------------------
-start_link() ->
- gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
log(Category, Level, Fmt) -> log(Category, Level, Fmt, []).
log(Category, Level, Fmt, Args) when is_list(Args) ->
- gen_server:cast(?SERVER, {log, Category, Level, Fmt, Args}).
-
-info(Fmt) -> log(default, info, Fmt).
-info(Fmt, Args) -> log(default, info, Fmt, Args).
-warning(Fmt) -> log(default, warning, Fmt).
-warning(Fmt, Args) -> log(default, warning, Fmt, Args).
-error(Fmt) -> log(default, error, Fmt).
-error(Fmt, Args) -> log(default, error, Fmt, Args).
-
-%%--------------------------------------------------------------------
-
-init([]) ->
- {ok, CatLevelList} = application:get_env(log_levels),
- CatLevels = [{Cat, level(Level)} || {Cat, Level} <- CatLevelList],
- {ok, orddict:from_list(CatLevels)}.
-
-handle_call(_Request, _From, State) ->
- {noreply, State}.
-
-handle_cast({log, Category, Level, Fmt, Args}, CatLevels) ->
- CatLevel = case orddict:find(Category, CatLevels) of
- {ok, L} -> L;
- error -> level(info)
- end,
- case level(Level) =< CatLevel of
+ case level(Level) =< catlevel(Category) of
false -> ok;
true -> (case Level of
info -> fun error_logger:info_msg/2;
warning -> fun error_logger:warning_msg/2;
error -> fun error_logger:error_msg/2
end)(Fmt, Args)
- end,
- {noreply, CatLevels};
-handle_cast(_Msg, State) ->
- {noreply, State}.
-
-handle_info(_Info, State) ->
- {noreply, State}.
+ end.
-terminate(_Reason, _State) ->
- ok.
+info(Fmt) -> log(default, info, Fmt).
+info(Fmt, Args) -> log(default, info, Fmt, Args).
+warning(Fmt) -> log(default, warning, Fmt).
+warning(Fmt, Args) -> log(default, warning, Fmt, Args).
+error(Fmt) -> log(default, error, Fmt).
+error(Fmt, Args) -> log(default, error, Fmt, Args).
-code_change(_OldVsn, State, _Extra) ->
- {ok, State}.
+catlevel(Category) ->
+ {ok, CatLevelList} = application:get_env(rabbit, log_levels),
+ level(proplists:get_value(Category, CatLevelList, info)).
%%--------------------------------------------------------------------
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl
index a5cd1bdd..7ff88f04 100644
--- a/src/rabbit_misc.erl
+++ b/src/rabbit_misc.erl
@@ -656,10 +656,10 @@ with_local_io(Fun) ->
end.
%% Log an info message on the local node using the standard logger.
-%% Use this if rabbit isn't running and the call didn't originate on
-%% the local node (e.g. rabbitmqctl calls).
+%% Use this if the call didn't originate on the local node (e.g.
+%% rabbitmqctl calls).
local_info_msg(Format, Args) ->
- with_local_io(fun () -> error_logger:info_msg(Format, Args) end).
+ with_local_io(fun () -> rabbit_log:info(Format, Args) end).
unfold(Fun, Init) ->
unfold(Fun, [], Init).
diff --git a/src/rabbit_mnesia.erl b/src/rabbit_mnesia.erl
index 630d9853..e60388f0 100644
--- a/src/rabbit_mnesia.erl
+++ b/src/rabbit_mnesia.erl
@@ -116,7 +116,7 @@ init_from_config() ->
true -> disc;
false -> ram
end},
- error_logger:warning_msg(
+ rabbit_log:warning(
"Converting legacy 'cluster_nodes' configuration~n ~w~n"
"to~n ~w.~n~n"
"Please update the configuration to the new format "
@@ -127,17 +127,21 @@ init_from_config() ->
{ok, Config} ->
Config
end,
+ case TryNodes of
+ [] -> init_db_and_upgrade([node()], disc, false);
+ _ -> auto_cluster(TryNodes, NodeType)
+ end.
+
+auto_cluster(TryNodes, NodeType) ->
case find_good_node(nodes_excl_me(TryNodes)) of
{ok, Node} ->
- rabbit_log:info("Node '~p' selected for clustering from "
- "configuration~n", [Node]),
+ rabbit_log:info("Node '~p' selected for auto-clustering~n", [Node]),
{ok, {_, DiscNodes, _}} = discover_cluster0(Node),
init_db_and_upgrade(DiscNodes, NodeType, true),
rabbit_node_monitor:notify_joined_cluster();
none ->
- rabbit_log:warning("Could not find any suitable node amongst the "
- "ones provided in the configuration: ~p~n",
- [TryNodes]),
+ rabbit_log:warning("Could not find any node for auto-clustering "
+ "from: ~p~n", [TryNodes]),
init_db_and_upgrade([node()], disc, false)
end.
@@ -619,10 +623,10 @@ schema_ok_or_move() ->
{error, Reason} ->
%% NB: we cannot use rabbit_log here since it may not have been
%% started yet
- error_logger:warning_msg("schema integrity check failed: ~p~n"
- "moving database to backup location "
- "and recreating schema from scratch~n",
- [Reason]),
+ rabbit_log:warning("schema integrity check failed: ~p~n"
+ "moving database to backup location "
+ "and recreating schema from scratch~n",
+ [Reason]),
ok = move_db(),
ok = create_schema()
end.
@@ -648,8 +652,8 @@ move_db() ->
ok ->
%% NB: we cannot use rabbit_log here since it may not have
%% been started yet
- error_logger:warning_msg("moved database from ~s to ~s~n",
- [MnesiaDir, BackupDir]),
+ rabbit_log:warning("moved database from ~s to ~s~n",
+ [MnesiaDir, BackupDir]),
ok;
{error, Reason} -> throw({error, {cannot_backup_mnesia,
MnesiaDir, BackupDir, Reason}})
@@ -695,7 +699,7 @@ leave_cluster(Node) ->
end.
wait_for(Condition) ->
- error_logger:info_msg("Waiting for ~p...~n", [Condition]),
+ rabbit_log:info("Waiting for ~p...~n", [Condition]),
timer:sleep(1000).
start_mnesia(CheckConsistency) ->
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
index 96448f32..4e92bf39 100644
--- a/src/rabbit_networking.erl
+++ b/src/rabbit_networking.erl
@@ -208,7 +208,7 @@ tcp_listener_addresses({Host, Port, Family0})
[{IPAddress, Port, Family} ||
{IPAddress, Family} <- getaddr(Host, Family0)];
tcp_listener_addresses({_Host, Port, _Family0}) ->
- error_logger:error_msg("invalid port ~p - not 0..65535~n", [Port]),
+ rabbit_log:error("invalid port ~p - not 0..65535~n", [Port]),
throw({error, {invalid_port, Port}}).
tcp_listener_addresses_auto(Port) ->
@@ -395,7 +395,7 @@ gethostaddr(Host, Family) ->
end.
host_lookup_error(Host, Reason) ->
- error_logger:error_msg("invalid host ~p - ~p~n", [Host, Reason]),
+ rabbit_log:error("invalid host ~p - ~p~n", [Host, Reason]),
throw({error, {invalid_host, Host, Reason}}).
resolve_family({_,_,_,_}, auto) -> inet;
diff --git a/src/rabbit_plugins.erl b/src/rabbit_plugins.erl
index 9acaa1d4..04db5d5d 100644
--- a/src/rabbit_plugins.erl
+++ b/src/rabbit_plugins.erl
@@ -97,7 +97,7 @@ list(PluginsDir) ->
[plugin_info(PluginsDir, Plug) || Plug <- EZs ++ FreeApps]),
case Problems of
[] -> ok;
- _ -> error_logger:warning_msg(
+ _ -> rabbit_log:warning(
"Problem reading some plugins: ~p~n", [Problems])
end,
ensure_dependencies(Plugins).
diff --git a/src/rabbit_upgrade.erl b/src/rabbit_upgrade.erl
index 8ab35a89..72bf7855 100644
--- a/src/rabbit_upgrade.erl
+++ b/src/rabbit_upgrade.erl
@@ -190,7 +190,7 @@ die(Msg, Args) ->
%% We don't throw or exit here since that gets thrown
%% straight out into do_boot, generating an erl_crash.dump
%% and displaying any error message in a confusing way.
- error_logger:error_msg(Msg, Args),
+ rabbit_log:error(Msg, Args),
Str = rabbit_misc:format(
"~n~n****~n~n" ++ Msg ++ "~n~n****~n~n~n", Args),
io:format(Str),
@@ -281,6 +281,4 @@ node_type_legacy() ->
false -> ram
end.
-%% NB: we cannot use rabbit_log here since it may not have been
-%% started yet
-info(Msg, Args) -> error_logger:info_msg(Msg, Args).
+info(Msg, Args) -> rabbit_log:info(Msg, Args).