diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl index 1b0719c4a..243864c7e 100644 --- a/src/ejabberd_logger.erl +++ b/src/ejabberd_logger.erl @@ -74,7 +74,67 @@ opt_type(log_rate_limit) -> opt_type(_) -> [log_rotate_date, log_rotate_size, log_rotate_count, log_rate_limit]. --ifdef(LAGER). +%% Default logger module is LAGER, defined in else clause. +%% TODO: Remove p1_logger usage and allow using Elixir logger if running in Elixir context. +-ifdef(P1LOGGER). + +start() -> + set(4), + LogPath = get_log_path(), + error_logger:add_report_handler(p1_logger_h, LogPath), + ok. + +reopen_log() -> + %% TODO: Use the Reopen log API for logger_h ? + p1_logger_h:reopen_log(), + reopen_sasl_log(). + +rotate_log() -> + %% Not implemented. + ok. + +get() -> + p1_loglevel:get(). + +set(LogLevel) when LogLevel >=0, LogLevel =< 5 -> + p1_loglevel:set(LogLevel); +set(LogLevel) -> + throw({wrong_loglevel, LogLevel}). + +%%%=================================================================== +%%% Internal functions +%%%=================================================================== +reopen_sasl_log() -> + case application:get_env(sasl,sasl_error_logger) of + {ok, {file, SASLfile}} -> + error_logger:delete_report_handler(sasl_report_file_h), + rotate_sasl_log(SASLfile), + error_logger:add_report_handler(sasl_report_file_h, + {SASLfile, get_sasl_error_logger_type()}); + _ -> false + end, + ok. + +rotate_sasl_log(Filename) -> + case file:read_file_info(Filename) of + {ok, _FileInfo} -> + file:rename(Filename, [Filename, ".0"]), + ok; + {error, _Reason} -> + ok + end. + +%% 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. + +-else. get_integer_env(Name, Default) -> case application:get_env(ejabberd, Name) of @@ -183,62 +243,4 @@ set({_LogLevel, _}) -> error_logger:error_msg("custom loglevels are not supported for 'lager'"), {module, lager}. --else. - -start() -> - set(4), - LogPath = get_log_path(), - error_logger:add_report_handler(p1_logger_h, LogPath), - ok. - -reopen_log() -> - %% TODO: Use the Reopen log API for logger_h ? - p1_logger_h:reopen_log(), - reopen_sasl_log(). - -rotate_log() -> - %% Not implemented. - ok. - -get() -> - p1_loglevel:get(). - -set(LogLevel) when LogLevel >=0, LogLevel =< 5 -> - p1_loglevel:set(LogLevel); -set(LogLevel) -> - throw({wrong_loglevel, LogLevel}). - -%%%=================================================================== -%%% Internal functions -%%%=================================================================== -reopen_sasl_log() -> - case application:get_env(sasl,sasl_error_logger) of - {ok, {file, SASLfile}} -> - error_logger:delete_report_handler(sasl_report_file_h), - rotate_sasl_log(SASLfile), - error_logger:add_report_handler(sasl_report_file_h, - {SASLfile, get_sasl_error_logger_type()}); - _ -> false - end, - ok. - -rotate_sasl_log(Filename) -> - case file:read_file_info(Filename) of - {ok, _FileInfo} -> - file:rename(Filename, [Filename, ".0"]), - ok; - {error, _Reason} -> - ok - end. - -%% 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. - -endif. diff --git a/src/ext_mod.erl b/src/ext_mod.erl index 148c94178..c6fbf5096 100644 --- a/src/ext_mod.erl +++ b/src/ext_mod.erl @@ -510,7 +510,7 @@ compile(_Module, _Spec, DestDir) -> EjabBin = filename:dirname(code:which(ejabberd)), EjabInc = filename:join(filename:dirname(EjabBin), "include"), XmlHrl = filename:join(EjabInc, "xml.hrl"), - Logger = [{d, 'LAGER'} || code:is_loaded(lager)=/=false], + Logger = [{d, 'P1LOGGER'} || code:is_loaded(lager)==false], ExtLib = [{d, 'NO_EXT_LIB'} || filelib:is_file(XmlHrl)], Options = [{outdir, Ebin}, {i, "include"}, {i, EjabInc}, verbose, report_errors, report_warnings]