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:
authorChristophe Romain <christophe.romain@process-one.net>2014-07-02 12:41:12 +0400
committerChristophe Romain <christophe.romain@process-one.net>2014-07-03 01:46:54 +0400
commit9265720f923abfb97336a6ad1cd41287772aa728 (patch)
tree601dc6bf98992c920f10a3dd61b4dde96bf400a3 /src/ejabberd_logger.erl
parent273631c242646baca7ea62d723059973a7ad6839 (diff)
add ability to rotate logs on given date condition
Diffstat (limited to 'src/ejabberd_logger.erl')
-rw-r--r--src/ejabberd_logger.erl18
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),