diff options
author | Christophe Romain <christophe.romain@process-one.net> | 2014-07-02 12:41:12 +0400 |
---|---|---|
committer | Christophe Romain <christophe.romain@process-one.net> | 2014-07-03 01:46:54 +0400 |
commit | 9265720f923abfb97336a6ad1cd41287772aa728 (patch) | |
tree | 601dc6bf98992c920f10a3dd61b4dde96bf400a3 /src/ejabberd_logger.erl | |
parent | 273631c242646baca7ea62d723059973a7ad6839 (diff) |
add ability to rotate logs on given date condition
Diffstat (limited to 'src/ejabberd_logger.erl')
-rw-r--r-- | src/ejabberd_logger.erl | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl index f5ee863a8..65899c8f6 100644 --- a/src/ejabberd_logger.erl +++ b/src/ejabberd_logger.erl @@ -73,6 +73,18 @@ get_pos_integer_env(Name, Default) -> [Name, Junk, Default]), Default end. +get_pos_string_env(Name, Default) -> + case application:get_env(ejabberd, Name) of + {ok, L} when is_list(L) -> + L; + undefined -> + Default; + {ok, Junk} -> + error_logger:error_msg("wrong value for ~s: ~p; " + "using ~p as a fallback~n", + [Name, Junk, Default]), + Default + end. start() -> application:load(sasl), @@ -82,6 +94,7 @@ start() -> Dir = filename:dirname(ConsoleLog), ErrorLog = filename:join([Dir, "error.log"]), CrashLog = filename:join([Dir, "crash.log"]), + LogRotateDate = get_pos_string_env(log_rotate_date, ""), LogRotateSize = get_pos_integer_env(log_rotate_size, 10*1024*1024), LogRotateCount = get_pos_integer_env(log_rotate_count, 1), LogRateLimit = get_pos_integer_env(log_rate_limit, 100), @@ -89,11 +102,12 @@ start() -> application:set_env( lager, handlers, [{lager_console_backend, info}, - {lager_file_backend, [{file, ConsoleLog}, {level, info}, + {lager_file_backend, [{file, ConsoleLog}, {level, info}, {date, LogRotateDate}, {count, LogRotateCount}, {size, LogRotateSize}]}, - {lager_file_backend, [{file, ErrorLog}, {level, error}, + {lager_file_backend, [{file, ErrorLog}, {level, error}, {date, LogRotateDate}, {count, LogRotateCount}, {size, LogRotateSize}]}]), application:set_env(lager, crash_log, CrashLog), + application:set_env(lager, crash_log_date, LogRotateDate), application:set_env(lager, crash_log_size, LogRotateSize), application:set_env(lager, crash_log_count, LogRotateCount), ejabberd:start_app(lager), |