ソースを参照

API to explicitly call log rotation

pull/311/head
Daniil Fedotov 9年前
コミット
af3a2d79c4
2個のファイルの変更32行の追加0行の削除
  1. +24
    -0
      src/lager.erl
  2. +8
    -0
      src/lager_file_backend.erl

+ 24
- 0
src/lager.erl ファイルの表示

@ -28,6 +28,7 @@
log/3, log/4, log/5,
log_unsafe/4,
md/0, md/1,
rotate_file/1, rotate_sink/1, rotate_all/0,
trace/2, trace/3, trace_file/2, trace_file/3, trace_file/4, trace_console/1, trace_console/2,
list_all_sinks/0, clear_all_traces/0, stop_trace/1, stop_trace/3, status/0,
get_loglevel/1, get_loglevel/2, set_loglevel/2, set_loglevel/3, set_loglevel/4, get_loglevels/1,
@ -594,3 +595,26 @@ pr_stacktrace(Stacktrace) ->
pr_stacktrace(Stacktrace, {Class, Reason}) ->
lists:flatten(
pr_stacktrace(Stacktrace) ++ "\n" ++ io_lib:format("~s:~p", [Class, Reason])).
rotate_file(FileName) ->
Handlers = lager_config:global_get(handlers),
RotateHandlers = lists:filter(
fun ({{lager_file_backend, FN}, _, _}) ->
FN == FileName orelse
lager_util:expand_path(FN) == lager_util:expand_path(FileName);
(_) -> false
end,
Handlers),
lager_file_backend:rotate_handlers(RotateHandlers).
rotate_sink(Sink) ->
Handlers = lager_config:global_get(handlers),
RotateHandlers = lists:filter(
fun({_,_,S}) -> S == Sink;
(_) -> false
end,
Handlers),
lager_file_backend:rotate_handlers(RotateHandlers).
rotate_all() ->
lager_file_backend:rotate_handlers(lager_config:global_get(handlers)).

+ 8
- 0
src/lager_file_backend.erl ファイルの表示

@ -42,6 +42,7 @@
-export([init/1, handle_call/2, handle_event/2, handle_info/2, terminate/2,
code_change/3]).
-export([rotate_handlers/1, rotate_handler/1]).
-export([config_to_id/1]).
@ -401,6 +402,13 @@ schedule_rotation(Name, Date) ->
erlang:send_after(lager_util:calculate_next_rotation(Date) * 1000, self(), {rotate, Name}),
ok.
rotate_handlers(Handlers) ->
[ rotate_handler(Handler) || Handler <- Handlers ].
rotate_handler({{lager_file_backend, FileName}, Handler, _Sink}) ->
Handler ! {rotate, lager_util:expand_path(FileName)};
rotate_handler(_) -> ok.
-ifdef(TEST).
get_loglevel_test() ->

読み込み中…
キャンセル
保存