diff --git a/src/eLog_app.erl b/src/eLog_app.erl index 26f0206..13b94bd 100644 --- a/src/eLog_app.erl +++ b/src/eLog_app.erl @@ -160,8 +160,10 @@ tryStartErrLoggerHandler(_ErrLoggerRedirect, Hwm, WhiteList) -> OldHandlers = case supervisor:start_child(lgHWatcherSup, [error_logger, lgErrLoggerH, [Hwm, lgUtil:get_env(errLoggerGLS, handle)]]) of {ok, _} -> + io:format("IMY******************* 111~n"), [begin error_logger:delete_report_handler(X), X end || X <- gen_event:which_handlers(error_logger) -- [lgErrLoggerH | WhiteList]]; - {error, _} -> + {error, _} = EEE -> + io:format("IMY*******************222 ~p~n", [EEE]), [] end, OldHandlers. diff --git a/src/errLogger/lgErrLoggerH.erl b/src/errLogger/lgErrLoggerH.erl index faf6351..3a08a5f 100644 --- a/src/errLogger/lgErrLoggerH.erl +++ b/src/errLogger/lgErrLoggerH.erl @@ -78,36 +78,8 @@ handle_call({mSetHighWater, N}, #state{shaper = Shaper} = State) -> handle_call(_Request, State) -> {ok, unknown_call, State}. -shaperFun() -> - SupSS = lgUtil:get_env(suppressSupStartStop, false), - AppSS = lgUtil:get_env(suppressAppStartStop, false), - if - SupSS andalso AppSS -> - fun suppress_supervisor_start_and_application_start/1; - SupSS -> - fun suppress_supervisor_start/1; - AppSS -> - fun suppress_application_start/1; - true -> - fun(_) -> false end - end. - -suppress_supervisor_start_and_application_start(E) -> - suppress_supervisor_start(E) orelse suppress_application_start(E). - -suppress_application_start({info_report, _GL, {_Pid, std_info, D}}) when is_list(D) -> - lists:member({exited, stopped}, D); -suppress_application_start({info_report, _GL, {_P, progress, D}}) -> - lists:keymember(application, 1, D) andalso lists:keymember(started_at, 1, D); -suppress_application_start(_) -> - false. - -suppress_supervisor_start({info_report, _GL, {_P, progress, D}}) -> - lists:keymember(started, 1, D) andalso lists:keymember(supervisor, 1, D); -suppress_supervisor_start(_) -> - false. - handle_event(Event, #state{sink = Sink, shaper = Shaper} = State) -> + io:format("IMY**********************111111111 ~p~n", [Event]), case lgUtil:checkHwm(Shaper, Event) of {true, _Drop, NewShaper} -> evalGl(Event, State#state{shaper = NewShaper}); @@ -584,3 +556,32 @@ get_value(Key, List, Default) -> supervisorName({local, Name}) -> Name; supervisorName(Name) -> Name. + +shaperFun() -> + SupSS = lgUtil:get_env(suppressSupStartStop, false), + AppSS = lgUtil:get_env(suppressAppStartStop, false), + if + SupSS andalso AppSS -> + fun suppress_supervisor_start_and_application_start/1; + SupSS -> + fun suppress_supervisor_start/1; + AppSS -> + fun suppress_application_start/1; + true -> + fun(_) -> false end + end. + +suppress_supervisor_start_and_application_start(E) -> + suppress_supervisor_start(E) orelse suppress_application_start(E). + +suppress_application_start({info_report, _GL, {_Pid, std_info, D}}) when is_list(D) -> + lists:member({exited, stopped}, D); +suppress_application_start({info_report, _GL, {_P, progress, D}}) -> + lists:keymember(application, 1, D) andalso lists:keymember(started_at, 1, D); +suppress_application_start(_) -> + false. + +suppress_supervisor_start({info_report, _GL, {_P, progress, D}}) -> + lists:keymember(started, 1, D) andalso lists:keymember(supervisor, 1, D); +suppress_supervisor_start(_) -> + false. diff --git a/src/testl.erl b/src/testl.erl index 1834437..f86c545 100644 --- a/src/testl.erl +++ b/src/testl.erl @@ -8,4 +8,4 @@ test(Msg) -> ?lgDebug("IMY************* ~p~n", [Msg]). tt() -> - ?lgError("IMYYYYYYYYYYYYYYY") . + ?lgError("IMYYYYYYYYYYYYYYY111") . diff --git a/src/watcher/lgHWatcherSrv.erl b/src/watcher/lgHWatcherSrv.erl index 412d4b7..4886a63 100644 --- a/src/watcher/lgHWatcherSrv.erl +++ b/src/watcher/lgHWatcherSrv.erl @@ -95,7 +95,9 @@ installHandler(Module, Config, Sink) -> Ret = case Module of lgErrLoggerH -> - gen_event:add_sup_handler(Sink, Module, Config); + Ret1 = gen_event:add_sup_handler(Sink, Module, Config), + io:format("IMY*******************~p~n", [Ret1]), + Ret1; lgBkThrottle -> %% lager_backend_throttle需要知道它连接到哪个接收器,因此这个公认的丑陋的解决方案。处理程序对发送到' init'的配置结构是敏感的, %% 遗憾的是,在不破坏第三方处理程序的情况下,向后端添加一个要忽略的配置项并不是一件小事。