diff options
-rw-r--r-- | include/logger.hrl | 36 | ||||
-rw-r--r-- | rebar.config.script | 3 | ||||
-rw-r--r-- | rel/reltool.config.script | 2 | ||||
-rw-r--r-- | src/ejabberd_admin.erl | 24 | ||||
-rw-r--r-- | src/ejabberd_app.erl | 4 | ||||
-rw-r--r-- | src/ejabberd_config.erl | 2 | ||||
-rw-r--r-- | src/ejabberd_logger.erl | 70 |
7 files changed, 113 insertions, 28 deletions
diff --git a/include/logger.hrl b/include/logger.hrl new file mode 100644 index 000000000..d61b61ac0 --- /dev/null +++ b/include/logger.hrl @@ -0,0 +1,36 @@ +%%%---------------------------------------------------------------------- +%%% +%%% ejabberd, Copyright (C) 2002-2013 ProcessOne +%%% +%%% This program is free software; you can redistribute it and/or +%%% modify it under the terms of the GNU General Public License as +%%% published by the Free Software Foundation; either version 2 of the +%%% License, or (at your option) any later version. +%%% +%%% This program is distributed in the hope that it will be useful, +%%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%%% General Public License for more details. +%%% +%%% You should have received a copy of the GNU General Public License +%%% along with this program; if not, write to the Free Software +%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +%%% 02111-1307 USA +%%% +%%%---------------------------------------------------------------------- +-define(PRINT(Format, Args), io:format(Format, Args)). + +-define(DEBUG(Format, Args), + ejabberd_logger:debug_msg(?MODULE, ?LINE, Format, Args)). + +-define(INFO_MSG(Format, Args), + ejabberd_logger:info_msg(?MODULE, ?LINE, Format, Args)). + +-define(WARNING_MSG(Format, Args), + ejabberd_logger:warning_msg(?MODULE, ?LINE, Format, Args)). + +-define(ERROR_MSG(Format, Args), + ejabberd_logger:error_msg(?MODULE, ?LINE, Format, Args)). + +-define(CRITICAL_MSG(Format, Args), + ejabberd_logger:critical_msg(?MODULE, ?LINE, Format, Args)). diff --git a/rebar.config.script b/rebar.config.script index 751c05096..d8280ab59 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -43,7 +43,6 @@ HiPE = case lists:keysearch(hipe, 1, Cfg) of end, Includes = [{i, "include"}, - {i, filename:join(["deps", "logger", "include"])}, {i, filename:join(["deps", "xml", "include"])}], SrcDirs = lists:foldl( @@ -55,7 +54,7 @@ SrcDirs = lists:foldl( Acc end, [], Cfg), -Deps = [{logger, ".*", {git, "git://github.com/processone/p1_logger"}}, +Deps = [{p1_logger, ".*", {git, "git://github.com/processone/p1_logger"}}, {cache_tab, ".*", {git, "git://github.com/processone/cache_tab"}}, {tls, ".*", {git, "git://github.com/processone/tls"}}, {stringprep, ".*", {git, "git://github.com/processone/stringprep"}}, diff --git a/rel/reltool.config.script b/rel/reltool.config.script index 54b97ed00..dc23ed904 100644 --- a/rel/reltool.config.script +++ b/rel/reltool.config.script @@ -25,7 +25,7 @@ ConfiguredOTPApps = lists:flatmap( OTPApps = RequiredOTPApps ++ ConfiguredOTPApps, -DepRequiredApps = [logger, cache_tab, tls, stringprep, xml, xmlrpc], +DepRequiredApps = [p1_logger, cache_tab, tls, stringprep, xml, xmlrpc], DepConfiguredApps = lists:flatmap( fun({mysql, true}) -> [mysql]; diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl index cef10013b..b0f847337 100644 --- a/src/ejabberd_admin.erl +++ b/src/ejabberd_admin.erl @@ -110,7 +110,7 @@ commands() -> result = {res, rescode}}, #ejabberd_commands{name = get_loglevel, tags = [logs, server], desc = "Get the current loglevel", - module = loglevel, function = get, + module = ejabberd_logger, function = get, args = [], result = {leveltuple, {tuple, [{levelnumber, integer}, {levelatom, atom}, @@ -280,27 +280,7 @@ status() -> reopen_log() -> ejabberd_hooks:run(reopen_log_hook, []), - %% TODO: Use the Reopen log API for logger_h ? - logger_h:reopen_log(), - case application:get_env(sasl,sasl_error_logger) of - {ok, {file, SASLfile}} -> - error_logger:delete_report_handler(sasl_report_file_h), - logger_h:rotate_log(SASLfile), - error_logger:add_report_handler(sasl_report_file_h, - {SASLfile, get_sasl_error_logger_type()}); - _ -> false - end, - ok. - -%% Function copied from Erlang/OTP lib/sasl/src/sasl.erl which doesn't export it -get_sasl_error_logger_type () -> - case application:get_env (sasl, errlog_type) of - {ok, error} -> error; - {ok, progress} -> progress; - {ok, all} -> all; - {ok, Bad} -> exit ({bad_config, {sasl, {errlog_type, Bad}}}); - _ -> all - end. + ejabberd_logger:reopen_log(). %%% %%% Stop Kindly diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl index 218a714c7..3cedf352f 100644 --- a/src/ejabberd_app.erl +++ b/src/ejabberd_app.erl @@ -39,7 +39,7 @@ %%% start(normal, _Args) -> - loglevel:set(4), + ejabberd_logger:set(4), write_pid_file(), start_apps(), randoms:start(), @@ -104,7 +104,7 @@ init() -> %erlang:system_flag(fullsweep_after, 0), %error_logger:logfile({open, ?LOG_PATH}), LogPath = get_log_path(), - error_logger:add_report_handler(logger_h, LogPath), + ejabberd_logger:set_logfile(LogPath), loop(). loop() -> diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl index c973c19b2..c4206426e 100644 --- a/src/ejabberd_config.erl +++ b/src/ejabberd_config.erl @@ -453,7 +453,7 @@ process_term(Term, State) -> {ejabberdctl_access_commands, ACs} -> add_option(ejabberdctl_access_commands, ACs, State); {loglevel, Loglevel} -> - loglevel:set(Loglevel), + ejabberd_logger:set(Loglevel), State; {max_fsm_queue, N} -> add_option(max_fsm_queue, N, State); diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl new file mode 100644 index 000000000..afb1f3f3d --- /dev/null +++ b/src/ejabberd_logger.erl @@ -0,0 +1,70 @@ +%%%------------------------------------------------------------------- +%%% @author Evgeniy Khramtsov <ekhramtsov@process-one.net> +%%% @copyright (C) 2013, Evgeniy Khramtsov +%%% @doc +%%% +%%% @end +%%% Created : 12 May 2013 by Evgeniy Khramtsov <ekhramtsov@process-one.net> +%%%------------------------------------------------------------------- +-module(ejabberd_logger). + +%% API +-export([start/0, set_logfile/1, reopen_log/0, get/0, set/1, + debug_msg/4, info_msg/4, warning_msg/4, error_msg/4, + critical_msg/4]). + +%%%=================================================================== +%%% API +%%%=================================================================== +start() -> + ok. + +set_logfile(FileName) -> + error_logger:add_report_handler(p1_logger_h, FileName). + +reopen_log() -> + %% TODO: Use the Reopen log API for logger_h ? + p1_logger_h:reopen_log(), + case application:get_env(sasl,sasl_error_logger) of + {ok, {file, SASLfile}} -> + error_logger:delete_report_handler(sasl_report_file_h), + p1_logger_h:rotate_log(SASLfile), + error_logger:add_report_handler(sasl_report_file_h, + {SASLfile, get_sasl_error_logger_type()}); + _ -> false + end, + ok. + +get() -> + p1_loglevel:get(). + +set(LogLevel) -> + p1_loglevel:set(LogLevel). + +debug_msg(Mod, Line, Format, Args) -> + p1_logger:debug_msg(Mod, Line, Format, Args). + +info_msg(Mod, Line, Format, Args) -> + p1_logger:info_msg(Mod, Line, Format, Args). + +warning_msg(Mod, Line, Format, Args) -> + p1_logger:warning_msg(Mod, Line, Format, Args). + +error_msg(Mod, Line, Format, Args) -> + p1_logger:error_msg(Mod, Line, Format, Args). + +critical_msg(Mod, Line, Format, Args) -> + p1_logger:critical_msg(Mod, Line, Format, Args). + +%%%=================================================================== +%%% Internal functions +%%%=================================================================== +%% Function copied from Erlang/OTP lib/sasl/src/sasl.erl which doesn't export it +get_sasl_error_logger_type () -> + case application:get_env (sasl, errlog_type) of + {ok, error} -> error; + {ok, progress} -> progress; + {ok, all} -> all; + {ok, Bad} -> exit ({bad_config, {sasl, {errlog_type, Bad}}}); + _ -> all + end. |