diff options
author | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-10-23 16:03:48 +0300 |
---|---|---|
committer | Evgeny Khramtsov <ekhramtsov@process-one.net> | 2019-10-23 16:03:48 +0300 |
commit | 1e30b858617e5893f959456cc837d48aed393fb6 (patch) | |
tree | 910e8229cc58a6cbc7e6a0cb53d38a1efee33072 | |
parent | Make PostgreSQL schema compatible with CockroachDB (diff) |
Report errors in logger initialization
-rw-r--r-- | src/ejabberd_logger.erl | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl index d90ff88df..010268107 100644 --- a/src/ejabberd_logger.erl +++ b/src/ejabberd_logger.erl @@ -110,19 +110,32 @@ start(Level) -> single_line => false}, FileFmtConfig = FmtConfig#{template => file_template()}, ConsoleFmtConfig = FmtConfig#{template => console_template()}, - logger:set_primary_config(level, Level), - logger:add_primary_filter(progress_report, - {fun ?MODULE:progress_filter/2, stop}), - logger:update_formatter_config(default, ConsoleFmtConfig), - logger:add_handler(ejabberd_log, logger_std_h, - #{level => all, - config => Config#{file => EjabberdLog}, - formatter => {logger_formatter, FileFmtConfig}}), - logger:add_handler(error_log, logger_std_h, - #{level => error, - config => Config#{file => ErrorLog}, - formatter => {logger_formatter, FileFmtConfig}}), - ok. + try + ok = logger:set_primary_config(level, Level), + ok = logger:update_formatter_config(default, ConsoleFmtConfig), + case logger:add_primary_filter(progress_report, + {fun ?MODULE:progress_filter/2, stop}) of + ok -> ok; + {error, {already_exist, _}} -> ok + end, + case logger:add_handler(ejabberd_log, logger_std_h, + #{level => all, + config => Config#{file => EjabberdLog}, + formatter => {logger_formatter, FileFmtConfig}}) of + ok -> ok; + {error, {already_exist, _}} -> ok + end, + case logger:add_handler(error_log, logger_std_h, + #{level => error, + config => Config#{file => ErrorLog}, + formatter => {logger_formatter, FileFmtConfig}}) of + ok -> ok; + {error, {already_exist, _}} -> ok + end + catch _:{Tag, Err} when Tag == badmatch; Tag == case_clause -> + ?LOG_CRITICAL("Failed to set logging: ~p", [Err]), + Err + end. restart() -> ok. |