Browse Source

ft: Def Rotator模块修改

master
SisMaker 4 years ago
parent
commit
cb3389c24b
10 changed files with 32 additions and 36 deletions
  1. +3
    -3
      README.md
  2. +1
    -1
      eRum.sample.config
  3. +1
    -1
      src/crashLog/rumCrashLog.erl
  4. +14
    -21
      src/eRum_app.erl
  5. +1
    -0
      src/eRum_sup.erl
  6. +1
    -1
      src/errLogger/rumErrLoggerH.erl
  7. +1
    -1
      test/lager_manager_killer_test.erl
  8. +1
    -1
      test/lager_rotate.erl
  9. +7
    -7
      test/lager_test_backend.erl
  10. +2
    -0
      进度.md

+ 3
- 3
README.md View File

@ -95,7 +95,7 @@ include a list of sink names (without the `_lager_event` suffix) in `erl_opts`:
To be useful, sinks must be configured at runtime with backends.
In `app.config` for the project that requires lager, for example, extend the lager configuration to include
an `extra_sinks` tuple with backends (aka "handlers") and optionally `asyncThreshold` and
an `extraSinks` tuple with backends (aka "handlers") and optionally `asyncThreshold` and
`asyncThresholdWindow` values (see **Overload Protection**
below). If async values are not configured, no overload protection will be applied on that sink.
@ -110,7 +110,7 @@ below). If async values are not configured, no overload protection will be appli
]},
%% Any other sinks
{extra_sinks, [
{extraSinks, [
{audit_lager_event,
[{handlers, [{lager_file_backend, [{file, "sink1.log"}, {level, info}]}]},
{asyncThreshold, 500},
@ -183,7 +183,7 @@ error_logger贮藏啤酒还提供了一个处理程序模块,该模块将传
```
[{lager, [
{extra_sinks,
{extraSinks,
[
{error_logger_lager_event,
[{handlers, [

+ 1
- 1
eRum.sample.config View File

@ -31,7 +31,7 @@
%% 消息处理模块可以存在多个,[{Name, [Optins]}]=Handler() {lager_file_backend, [{file, "console.log"}, {level, info}]} 消息处理模块可以存在多个
{handlers, []},
%% 额外的接收器列表 [{handler, [Handler()]}]
{extra_sinks, []},
{extraSinks, []},
%% 限制每秒允许的消息数量 最好将此数字保持较小
{errLoggerHwm, 50},
{traces, 1},

+ 1
- 1
src/crashLog/rumCrashLog.erl View File

@ -187,7 +187,7 @@ do_log({log, Event}, #state{fileName = Name, fd = FD, inode = Inode, ctime = Cti
case Rotator:ensureLogfile(Name, FD, Inode, Ctime, false) of
{ok, {_FD, _Inode, _Ctime, Size}} when RotSize /= 0, Size > RotSize ->
_ = Rotator:rotateLogfile(Name, Count),
handle_cast({log, Event}, State);
handleCast({log, Event}, State);
{ok, {NewFD, NewInode, NewCtime, _Size}} ->
TimeBinStr = rumUtil:msToBinStr(),
Time = [TimeBinStr, " =", ReportStr, "====\n"],

+ 14
- 21
src/eRum_app.erl View File

@ -10,12 +10,10 @@
, stop/1
, doStart/0
, startSink/1
, startHandler/3
, startSink/2
, startHandler/3
]).
start() ->
application:ensure_all_started(eRum).
@ -57,17 +55,14 @@ startTrace({Handler, Filter, Level}) when is_atom(Level) ->
{ok, _} = eRum:trace(Handler, Filter, Level).
doStartExtraSink() ->
doStartExtraSinks(rumUtil:get_env(extra_sinks, [])).
doStartExtraSinks(rumUtil:get_env(extraSinks, [])).
startSink(?RumDefSink) -> doStart();
startSink(Sink) ->
AllSinksDef = rumUtil:get_env(extra_sinks, []),
boot_sink(Sink, lists:keyfind(Sink, 1, AllSinksDef)).
boot_sink(Sink, {Sink, Def}) ->
startSink(Sink, Def);
boot_sink(Sink, false) ->
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],
@ -168,7 +163,7 @@ doStartExtraSinks(Sinks) ->
[startSink(Sink, Opts) || {Sink, Opts} <- Sinks],
ok.
startSink(Sink, SinkDef) ->
startSink(Sink, Opts) ->
rumConfig:initSink(Sink),
ChildId = rumUtil:makeInnerSinkName(Sink),
SinkSpec = #{
@ -179,13 +174,11 @@ startSink(Sink, SinkDef) ->
type => worker,
modules => [dynamic]},
_ = supervisor:start_child(eRum_sup,SinkSpec),
tryStartAsyncMgr(proplists:get_value(asyncThreshold, SinkDef), proplists:get_value(asyncThresholdWindow, SinkDef), Sink),
tryInstallKiller(proplists:get_value(killerHwm, SinkDef), proplists:get_value(killerReTime, SinkDef), Sink),
tryStartHandlers(proplists:get_value(handlers, SinkDef, []), Sink),
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) ->
@ -206,10 +199,10 @@ maybe_make_handler_id(Mod, Config) ->
%% already be loaded, which is unlikely at this phase of startup. Using code:load
%% caused undesirable side-effects with generating code-coverage reports.
%%gen_event处理程序id
%%使erlang:function_exported
%%使:
%%
%%gen_event处理程序id
%%使erlang:function_exported
%%使:
%%
try Mod:config_to_id(Config) of
Id ->

+ 1
- 0
src/eRum_sup.erl View File

@ -34,6 +34,7 @@ start_link() ->
init(_Args) ->
%% set up the config, is safe even during relups
%% IMY-TODO
rumConfig:init(),
%%lager_event作为默认值启动gen_event东西也许是一个用于处理接收器及其策略的新API
SupFlags =

+ 1
- 1
src/errLogger/rumErrLoggerH.erl View File

@ -142,7 +142,7 @@ code_change(_OldVsn, State, _Extra) ->
%% internal functions
configured_sink() ->
case proplists:get_value(?RumErrLogSink, application:get_env(lager, extra_sinks, [])) of
case proplists:get_value(?RumErrLogSink, application:get_env(lager, extraSinks, [])) of
undefined -> ?RumDefSink;
_ -> ?RumErrLogSink
end.

+ 1
- 1
test/lager_manager_killer_test.erl View File

@ -55,7 +55,7 @@ overload_alternate_sink_test_() ->
KillerHWM = 10, % kill the manager if there are more than 10 pending logs
KillerReinstallAfter = 1000, % reinstall killer after 1 sec
application:set_env(lager, handlers, []),
application:set_env(lager, extra_sinks, [{?TEST_SINK_EVENT, [
application:set_env(lager, extraSinks, [{?TEST_SINK_EVENT, [
{handlers, [{lager_slow_backend, [{delay, Delay}]}]},
{killerHwm, KillerHWM},
{killerReTime, KillerReinstallAfter},

+ 1
- 1
test/lager_rotate.erl View File

@ -59,7 +59,7 @@ rotate_test_() ->
application:set_env(lager, handlers, [
{lager_file_backend, [{file, Log1}, {level, info}]},
{lager_file_backend, [{file, Log2}, {level, info}]}]),
application:set_env(lager, extra_sinks, [
application:set_env(lager, extraSinks, [
{sink_event,
[{handlers,
[{lager_file_backend, [{file, Sink}, {level, info}]}]}

+ 7
- 7
test/lager_test_backend.erl View File

@ -871,7 +871,7 @@ setup_sink() ->
application:load(lager),
application:set_env(lager, handlers, []),
application:set_env(lager, errLoggerRedirect, false),
application:set_env(lager, extra_sinks, [{?TEST_SINK_EVENT, [{handlers, [{?MODULE, info}]}]}]),
application:set_env(lager, extraSinks, [{?TEST_SINK_EVENT, [{handlers, [{?MODULE, info}]}]}]),
lager:start(),
gen_event:call(lager_event, ?MODULE, flush),
gen_event:call(?TEST_SINK_EVENT, ?MODULE, flush).
@ -966,7 +966,7 @@ error_logger_redirect_crash_setup_sink() ->
application:load(lager),
application:set_env(lager, errLoggerRedirect, true),
application:unset_env(lager, handlers),
application:set_env(lager, extra_sinks, [
application:set_env(lager, extraSinks, [
{error_logger_lager_event, [
{handlers, [{?MODULE, error}]}]}]),
lager:start(),
@ -976,7 +976,7 @@ error_logger_redirect_crash_setup_sink() ->
error_logger_redirect_crash_cleanup(_Sink) ->
application:stop(lager),
application:stop(goldrush),
application:unset_env(lager, extra_sinks),
application:unset_env(lager, extraSinks),
case whereis(crash) of
undefined -> ok;
Pid -> exit(Pid, kill)
@ -1002,7 +1002,7 @@ crash_fsm_sink_setup() ->
application:load(lager),
application:set_env(lager, errLoggerRedirect, true),
application:set_env(lager, handlers, []),
application:set_env(lager, extra_sinks, [{ErrorSink, [{handlers, [{?MODULE, error}]}]}]),
application:set_env(lager, extraSinks, [{ErrorSink, [{handlers, [{?MODULE, error}]}]}]),
lager:start(),
crash_fsm:start(),
crash_statem:start(),
@ -1014,7 +1014,7 @@ crash_fsm_sink_setup() ->
crash_fsm_cleanup(_Sink) ->
application:stop(lager),
application:stop(goldrush),
application:unset_env(lager, extra_sinks),
application:unset_env(lager, extraSinks),
lists:foreach(fun(N) -> kill_crasher(N) end, [crash_fsm, crash_statem]),
error_logger:tty(true).
@ -1161,7 +1161,7 @@ error_logger_redirect_setup_sink() ->
application:load(lager),
application:set_env(lager, errLoggerRedirect, true),
application:unset_env(lager, handlers),
application:set_env(lager, extra_sinks, [
application:set_env(lager, extraSinks, [
{error_logger_lager_event, [
{handlers, [{?MODULE, info}]}]}]),
application:set_env(lager, suppress_supervisor_start_stop, false),
@ -1175,7 +1175,7 @@ error_logger_redirect_setup_sink() ->
error_logger_redirect_cleanup(_) ->
application:stop(lager),
application:stop(goldrush),
application:unset_env(lager, extra_sinks),
application:unset_env(lager, extraSinks),
error_logger:tty(true).
error_logger_redirect_test_() ->

+ 2
- 0
进度.md View File

@ -2,12 +2,14 @@
eRum_sup
eRum.app.src
rumHWatcherSup
rumRotatorExm
# Done incomplete
app.config done
eRum_app
rumHWatcherSrv 部分还需要修改 删除测试代码
rumRotatorIns 旋转日志格式还需要修改
# Doing

Loading…
Cancel
Save