diff options
Diffstat (limited to 'src/ejabberd_logger.erl')
| -rw-r--r-- | src/ejabberd_logger.erl | 75 |
1 files changed, 55 insertions, 20 deletions
diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl index f036c1e72..afb1f3f3d 100644 --- a/src/ejabberd_logger.erl +++ b/src/ejabberd_logger.erl @@ -1,35 +1,70 @@ %%%------------------------------------------------------------------- %%% @author Evgeniy Khramtsov <ekhramtsov@process-one.net> -%%% @copyright (C) 2012, Evgeniy Khramtsov -%%% @doc This module is needed to shut up Dialyzer +%%% @copyright (C) 2013, Evgeniy Khramtsov +%%% @doc +%%% %%% @end -%%% Created : 10 Jul 2012 by Evgeniy Khramtsov <ekhramtsov@process-one.net> +%%% Created : 12 May 2013 by Evgeniy Khramtsov <ekhramtsov@process-one.net> %%%------------------------------------------------------------------- -module(ejabberd_logger). --compile({no_auto_import, [{get, 0}]}). - %% API --export([debug_msg/4, info_msg/4, warning_msg/4, - error_msg/4, critical_msg/4, get/0]). +-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 %%%=================================================================== --spec debug_msg(atom(), pos_integer(), string(), list()) -> ok. --spec info_msg(atom(), pos_integer(), string(), list()) -> ok. --spec warning_msg(atom(), pos_integer(), string(), list()) -> ok. --spec error_msg(atom(), pos_integer(), string(), list()) -> ok. --spec critical_msg(atom(), pos_integer(), string(), list()) -> ok. --spec get() -> {non_neg_integer(), [{atom(), non_neg_integer()}]}. - -debug_msg(_Mod, _Line, _Format, _Args) -> ok. -info_msg(_Mod, _Line, _Format, _Args) -> ok. -warning_msg(_Mod, _Line, _Format, _Args) -> ok. -error_msg(_Mod, _Line, _Format, _Args) -> ok. -critical_msg(_Mod, _Line, _Format, _Args) -> ok. -get() -> {0, [{foo, 0}]}. +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. |
