瀏覽代碼

ft: Def Rotator模块修改

master
SisMaker 4 年之前
父節點
當前提交
eb8fe27f7a
共有 1 個文件被更改,包括 44 次插入43 次删除
  1. +44
    -43
      src/eRum_app.erl

+ 44
- 43
src/eRum_app.erl 查看文件

@ -40,6 +40,36 @@ doStart() ->
eRum:updateLogevelCfg(?RumDefSink),
SavedHandlers.
startSink(?RumDefSink) -> doStart();
startSink(Sink) ->
AllSinksDef = rumUtil:get_env(extraSinks, []),
SinkValue = lists:keyfind(Sink, 1, AllSinksDef),
SinkOpts = ?IIF(SinkValue == false, [], element(2, SinkValue)),
startSink(Sink, SinkOpts).
startSink(Sink, Opts) ->
rumConfig:initSink(Sink),
ChildId = rumUtil:makeInnerSinkName(Sink),
SinkSpec = #{
id => ChildId,
start => {gen_event, start_link, [{local, Sink}]},
restart => permanent,
shutdown => 5000,
type => worker,
modules => [dynamic]},
_ = supervisor:start_child(eRum_sup, SinkSpec),
tryStartAsyncMgr(proplists:get_value(asyncThreshold, Opts, undefined), proplists:get_value(asyncThresholdWindow, Opts, undefined), Sink),
tryInstallKiller(proplists:get_value(killerHwm, Opts, undefined), proplists:get_value(killerReTime, Opts, undefined), Sink),
tryStartHandlers(proplists:get_value(handlers, Opts, []), Sink),
eRum:updateLogevelCfg(Sink).
doStartExtraSink() ->
doStartExtraSinks(rumUtil:get_env(extraSinks, [])).
doStartExtraSinks(Sinks) ->
[startSink(Sink, Opts) || {Sink, Opts} <- Sinks],
ok.
doStartTraces() ->
_ = rumUtil:trace_filter(none),
ok = addTraces().
@ -54,18 +84,8 @@ startTrace({Handler, Filter}) ->
startTrace({Handler, Filter, Level}) when is_atom(Level) ->
{ok, _} = eRum:trace(Handler, Filter, Level).
doStartExtraSink() ->
doStartExtraSinks(rumUtil:get_env(extraSinks, [])).
startSink(?RumDefSink) -> doStart();
startSink(Sink) ->
AllSinksDef = rumUtil:get_env(extraSinks, []),
SinkValue = lists:keyfind(Sink, 1, AllSinksDef),
SinkOpts = ?IIF(SinkValue == false, [], element(2, SinkValue)),
startSink(Sink, SinkOpts).
stop(Handlers) ->
[error_logger:add_report_handler(Handler) || Handler <- Handlers],
[error_logger:add_report_handler(Handler) || Handler <- Handlers],
rumConfig:cleanup().
tryStartAsyncMgr(undefined, _Window, _Sink) ->
@ -100,18 +120,19 @@ doStartHandlers([], _Sink, _NameAcc, HandlerAcc) ->
HandlerAcc;
doStartHandlers([OneHandler | Handlers], Sink, NameAcc, HandlerAcc) ->
{Module, Options} = parseHandlers(OneHandler),
NewNameAcc = case Module of
{rumBackendFile, F} ->
case lists:member(F, NameAcc) of
true ->
error_logger:error_msg("Cannot have same file (~p) in multiple file backends~n", [F]),
throw({error, bad_config});
_ ->
[F | NameAcc]
end;
_ ->
NameAcc
end,
NewNameAcc =
case Module of
{rumBackendFile, F} ->
case lists:member(F, NameAcc) of
true ->
error_logger:error_msg("Cannot have same file (~p) in multiple file backends~n", [F]),
throw({error, bad_config});
_ ->
[F | NameAcc]
end;
_ ->
NameAcc
end,
HandlerRet = startHandler(Sink, Module, Options),
doStartHandlers(Handlers, Sink, NewNameAcc, [HandlerRet | HandlerAcc]).
@ -159,26 +180,6 @@ tryRemoveLoggerHandler() ->
error_logger:error_msg("calling logger:remove_handler(default) failed: ~p ~p", [Err, Reason])
end.
doStartExtraSinks(Sinks) ->
[startSink(Sink, Opts) || {Sink, Opts} <- Sinks],
ok.
startSink(Sink, Opts) ->
rumConfig:initSink(Sink),
ChildId = rumUtil:makeInnerSinkName(Sink),
SinkSpec = #{
id => ChildId,
start => {gen_event, start_link, [{local, Sink}]},
restart => permanent,
shutdown => 5000,
type => worker,
modules => [dynamic]},
_ = supervisor:start_child(eRum_sup,SinkSpec),
tryStartAsyncMgr(proplists:get_value(asyncThreshold, Opts), proplists:get_value(asyncThresholdWindow, Opts), Sink),
tryInstallKiller(proplists:get_value(killerHwm, Opts), proplists:get_value(killerReTime, Opts), Sink),
tryStartHandlers(proplists:get_value(handlers, Opts, []), Sink),
eRum:updateLogevelCfg(Sink).
parseHandlers([]) ->
[];
parseHandlers([{lager_file_backend, [{Key, _Value} | _] = Config} | T]) when is_atom(Key) ->

Loading…
取消
儲存