Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_logger.erl')
-rw-r--r--src/ejabberd_logger.erl70
1 files changed, 70 insertions, 0 deletions
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.