summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2017-06-02 13:21:27 +0200
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2017-06-26 13:30:46 +0200
commit5f2c1152890f44e60af92b8ca97b922f0d0e9bed (patch)
tree557748f8ae77d1bab57ea0fe49be25b5e376be6f /src
parent95c993dc848c679da0a130965920eb31e104104f (diff)
downloadrabbitmq-server-git-5f2c1152890f44e60af92b8ca97b922f0d0e9bed.tar.gz
rabbit_log: Move it from rabbitmq-server to rabbitmq-common
It obviously depends on a running broker, but some modules in rabbitmq-common call it. This resolves a dependency of rabbitmq-common on rabbitmq-server. [#118490793]
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_log.erl108
1 files changed, 0 insertions, 108 deletions
diff --git a/src/rabbit_log.erl b/src/rabbit_log.erl
deleted file mode 100644
index df34bece5d..0000000000
--- a/src/rabbit_log.erl
+++ /dev/null
@@ -1,108 +0,0 @@
-%% The contents of this file are subject to the Mozilla Public License
-%% Version 1.1 (the "License"); you may not use this file except in
-%% compliance with the License. You may obtain a copy of the License
-%% at http://www.mozilla.org/MPL/
-%%
-%% Software distributed under the License is distributed on an "AS IS"
-%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
-%% the License for the specific language governing rights and
-%% limitations under the License.
-%%
-%% The Original Code is RabbitMQ.
-%%
-%% The Initial Developer of the Original Code is GoPivotal, Inc.
-%% Copyright (c) 2007-2017 Pivotal Software, Inc. All rights reserved.
-%%
-
--module(rabbit_log).
-
--export([log/3, log/4, debug/1, debug/2, info/1, info/2, warning/1,
- warning/2, error/1, error/2]).
--export([with_local_io/1]).
-
-%%----------------------------------------------------------------------------
-
--export_type([level/0]).
-
--type category() :: atom().
--type level() :: 'debug' | 'info' | 'warning' | 'error'.
-
-%%----------------------------------------------------------------------------
-
--spec log(category(), level(), string()) -> 'ok'.
-log(Category, Level, Fmt) -> log(Category, Level, Fmt, []).
-
--spec log(category(), level(), string(), [any()]) -> 'ok'.
-log(Category, Level, Fmt, Args) when is_list(Args) ->
- case level(Level) =< catlevel(Category) of
- false -> ok;
- true -> F = case Level of
- debug -> fun error_logger:info_msg/2;
- info -> fun error_logger:info_msg/2;
- warning -> fun error_logger:warning_msg/2;
- error -> fun error_logger:error_msg/2
- end,
- with_local_io(fun () -> F(Fmt, Args) end)
- end.
-
--spec debug(string()) -> 'ok'.
-debug(Fmt) -> log(default, debug, Fmt).
--spec debug(string(), [any()]) -> 'ok'.
-debug(Fmt, Args) -> log(default, debug, Fmt, Args).
--spec info(string()) -> 'ok'.
-info(Fmt) -> log(default, info, Fmt).
--spec info(string(), [any()]) -> 'ok'.
-info(Fmt, Args) -> log(default, info, Fmt, Args).
--spec warning(string()) -> 'ok'.
-warning(Fmt) -> log(default, warning, Fmt).
--spec warning(string(), [any()]) -> 'ok'.
-warning(Fmt, Args) -> log(default, warning, Fmt, Args).
--spec error(string()) -> 'ok'.
-error(Fmt) -> log(default, error, Fmt).
--spec error(string(), [any()]) -> 'ok'.
-error(Fmt, Args) -> log(default, error, Fmt, Args).
-
-catlevel(Category) ->
- %% We can get here as part of rabbitmqctl when it is impersonating
- %% a node; in which case the env will not be defined.
- CatLevelList = case application:get_env(rabbit, log_levels) of
- {ok, L} -> L;
- undefined -> []
- end,
- level(proplists:get_value(Category, CatLevelList, info)).
-
-%%--------------------------------------------------------------------
-
-level(debug) -> 4;
-level(info) -> 3;
-level(warning) -> 2;
-level(warn) -> 2;
-level(error) -> 1;
-level(none) -> 0.
-
-%% Execute Fun using the IO system of the local node (i.e. the node on
-%% which the code is executing). Since this is invoked for every log
-%% message, we try to avoid unnecessarily churning group_leader/1.
--spec with_local_io(fun (() -> A)) -> A.
-with_local_io(Fun) ->
- GL = group_leader(),
- Node = node(),
- case node(GL) of
- Node -> Fun();
- _ -> set_group_leader_to_user_safely(whereis(user)),
- try
- Fun()
- after
- group_leader(GL, self())
- end
- end.
-
-set_group_leader_to_user_safely(undefined) ->
- handle_damaged_io_system();
-set_group_leader_to_user_safely(User) when is_pid(User) ->
- group_leader(User, self()).
-
-handle_damaged_io_system() ->
- Msg = "Erlang VM I/O system is damaged, restart needed~n",
- io:format(standard_error, Msg, []),
- exit(erlang_vm_restart_needed).