From 7f591b36fbd02565efdbb106730f356c2360272c Mon Sep 17 00:00:00 2001 From: SisMaker <1713699517@qq.com> Date: Wed, 16 Feb 2022 14:10:01 +0800 Subject: [PATCH] =?UTF-8?q?rf:=20=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eLog.sample.config | 20 +++++++++++++------- include/lgDef.hrl | 4 ++-- src/eLog.app.src | 2 +- src/eLog.erl | 4 +--- src/eLog_sup.erl | 24 +----------------------- src/watcher/lgHWatcherSup.erl | 23 +---------------------- 6 files changed, 19 insertions(+), 58 deletions(-) diff --git a/eLog.sample.config b/eLog.sample.config index 5ba6637..33a63de 100644 --- a/eLog.sample.config +++ b/eLog.sample.config @@ -15,6 +15,10 @@ {emergency, <<"\e[1;41m">>} ]}, + %% ********************************************** 日志文件配置相关 ************************************************ + %% 可选的日志路径, 默认情况下是当前路径 + {logRoot, <<"./log">>}, + %%*********************************************** handler与接收器(sink) and traces ****************************** %% 消息处理模块可以存在多个,[{SinkModule, [lgConsoleOpt() | lgFileOpt()]}]=Handler() 消息处理模块可以存在多个 %% eg: {handlers, [ @@ -22,7 +26,12 @@ %% {lgBkdFile, [{id, error}, {file, "error.log"}, {level, error}]}, %% {lgBkdConsole, [{level, info}]} %% ]} - {handlers, []}, + {handlers, [ + {lgBkdConsole, [{level, '>=debug'}]}, + {lgBkdFile, [{id, debug}, {file, <<"console.log">>}, {level, '>=debug'}, {size, 10485760}, {date, <<"$D0">>}]}, + {lgBkdFile, [{id, info}, {file, <<"info.log">>}, {level, '>=info'}, {size, 10485760}, {date, <<"$D0">>}]}, + {lgBkdFile, [{id, error}, {file, <<"error.log">>}, {level, '>=error'}, {size, 10485760}, {date, <<"$D0">>}]} + ]}, %% 额外的接收器列表 [{SinkName, [{handlers, Handler()}|{asyncThreshold, 500}|{asyncThrWindow, 50}|{killerHwm, 1000}|{killerReTime, 5000}]}] %% eg: {extraSinks, [ @@ -48,6 +57,7 @@ %% ********************************************** killer相关 **************************************************** %% 如果接收器的邮箱大小超过1000条消息,请杀死整个接收器并在5000毫秒后重新加载它。如果需要,此行为也可以安装到其他接收器中。 + %% 格式 integer() | undefined 当值为undefined 禁用此功能 {killerHwm, 1000}, %% 参见killer_hwm {killerReTime, 5000}, @@ -56,10 +66,6 @@ %% 元数据名单列表 {mdWhitelist, []}, - %% ********************************************** 日志文件配置相关 ************************************************ - %% 可选的日志路径, 默认情况下是当前路径 - {logRoot, <<"./log">>}, - %% crash log cfg %% 有效值 string | false 值为 false 的时候 没有 crash logger. {crashLogFile, <<"crash.log">>}, @@ -85,9 +91,9 @@ {errLoggerGLS, handle}, %%是否禁止 disable reformatting for OTP and Cowboy messages false表示会格式化OTP和Cowboy的错误信息 {errLoggerFmtRaw, false}, - %% 超过高水位标记时,可以将啤酒配置为刷新消息队列中的所有事件通知 + %% 超过高水位标记时,可以配置为刷新消息队列中的所有事件通知 {errLoggerFlushQueue, true}, - %% 如果flush_queue为true,则可以设置消息队列长度阈值,在该阈值处将开始丢弃消息。默认阈值为0,这意味着如果flush_queue为true, + %% 如果flush_queue为true,则可以设置消息队列缓存阈值,消息队列中消息数量超过该阈值处将开始丢弃消息。默认阈值为0,这意味着如果flush_queue为true, %% 则超过高水位标记时将丢弃消息,而不管消息队列的长度如何。 {errLoggerFlushThr, 20}, diff --git a/include/lgDef.hrl b/include/lgDef.hrl index bff8133..52ed428 100644 --- a/include/lgDef.hrl +++ b/include/lgDef.hrl @@ -71,8 +71,8 @@ -define(LgDefHandler, [ {lgBkdConsole, [{level, '>=info'}]}, - {lgBkdFile, [{id, error}, {file, <<"error.log">>}, {level, '>=error'}, {size, 10485760}, {date, <<"$D0">>}, {count, 5}]}, - {lgBkdFile, [{id, console}, {file, <<"console.log">>}, {level, '>=debug'}, {size, 10485760}, {date, <<"$D0">>}, {count, 5}]} + {lgBkdFile, [{id, error}, {file, <<"error.log">>}, {level, '>=error'}, {size, 10485760}, {date, <<"$D0">>}]}, + {lgBkdFile, [{id, console}, {file, <<"console.log">>}, {level, '>=debug'}, {size, 10485760}, {date, <<"$D0">>}]} ]). -record(lgShaper, { diff --git a/src/eLog.app.src b/src/eLog.app.src index 1690d1c..8d40ea9 100644 --- a/src/eLog.app.src +++ b/src/eLog.app.src @@ -7,6 +7,6 @@ {registered, []}, {mod, {eLog_app, []}}, {env, []}, - {licenses, ["MIT License"]} + {licenses, ["MIT"]} ]}. diff --git a/src/eLog.erl b/src/eLog.erl index 4ef924e..e3ec9e8 100644 --- a/src/eLog.erl +++ b/src/eLog.erl @@ -69,7 +69,7 @@ }). start() -> - application:ensure_all_started(eLog) . + application:ensure_all_started(eLog). stop() -> application:stop(eLog). @@ -215,11 +215,9 @@ rotateSink(Sink) -> rotateAll() -> rotateHandlers(lists:map(fun({H, _, S}) -> {H, S} end, lgConfig:ptGet(handlers, []))). - rotateHandlers(Handlers) -> [rotateHandler(Handler, Sink) || {Handler, Sink} <- Handlers]. - rotateHandler(Handler) -> Handlers = lgConfig:ptGet(handlers, []), case lists:keyfind(Handler, 1, Handlers) of diff --git a/src/eLog_sup.erl b/src/eLog_sup.erl index 1fb00e5..189171d 100644 --- a/src/eLog_sup.erl +++ b/src/eLog_sup.erl @@ -16,33 +16,11 @@ start_link() -> supervisor:start_link({local, ?MODULE}, ?MODULE, []). -% 主管的孩子被定义为孩子规格列表 。当主管启动时,将根据此列表从左到右依次启动子进程。主管终止时,它首先以相反的启动顺序从右到左终止其子进程。 -% sup_flags() = -% #{ -% strategy => strategy(), % optional one_for_one | one_for_all | rest_for_one | simple_one_for_one -% intensity => non_neg_integer(), % optional MaxR 周期时间内最大重启次数 -% period => pos_integer() % optional MaxT 重启时间周期 MaxT里重启次数大于MaxR -% } -% child_spec() = -% #{ -% id => child_id(), % mandatory Id用来内部标识子规范 -% start => mfargs(), % mandatory {M,F,A} -% restart => restart(), % optional permanent(总是重启) | transient(异常关闭会重启即关闭原因非 normal,shutdown,{shutdown,Term}) | temporary(不会重启) -% shutdown => shutdown(), % optional brutal_kill | infinity | integer -% type => worker(), % optional supervisor | worker -% modules => modules() % optional [Module] 假如子进程是supervisor、gen_server 或 gen_fsm,那么Module 是回调模块的名称;假如子进程是gen_event,那么Modules 应该是dynamic -% } - init(_Args) -> %% set up the config, is safe even during relups ?eLogInit(), %%始终将lgEvent作为默认值启动,并确保可以根据需要启动其他gen_event东西也许是一个用于处理接收器及其策略的新API? - SupFlags = - #{ - strategy => one_for_one, - intensity => 10, - period => 60 - }, + SupFlags = #{strategy => one_for_one, intensity => 10, period => 60}, LgEventSpec = #{ id => ?LgDefSink, diff --git a/src/watcher/lgHWatcherSup.erl b/src/watcher/lgHWatcherSup.erl index 5e64723..f4fce9c 100644 --- a/src/watcher/lgHWatcherSup.erl +++ b/src/watcher/lgHWatcherSup.erl @@ -11,29 +11,8 @@ start_link() -> supervisor:start_link({local, ?MODULE}, ?MODULE, []). -% 主管的孩子被定义为孩子规格列表 。当主管启动时,将根据此列表从左到右依次启动子进程。主管终止时,它首先以相反的启动顺序从右到左终止其子进程。 -% sup_flags() = -% #{ -% strategy => strategy(), % optional one_for_one | one_for_all | rest_for_one | simple_one_for_one -% intensity => non_neg_integer(), % optional MaxR 周期时间内最大重启次数 -% period => pos_integer() % optional MaxT 重启时间周期 MaxT里重启次数大于MaxR -% } -% child_spec() = -% #{ -% id => child_id(), % mandatory Id用来内部标识子规范 -% start => mfargs(), % mandatory {M,F,A} -% restart => restart(), % optional permanent(总是重启) | transient(异常关闭会重启即关闭原因非 normal,shutdown,{shutdown,Term}) | temporary(不会重启) -% shutdown => shutdown(), % optional brutal_kill | infinity | integer -% type => worker(), % optional supervisor | worker -% modules => modules() % optional [Module] 假如子进程是supervisor、gen_server 或 gen_fsm,那么Module 是回调模块的名称;假如子进程是gen_event,那么Modules 应该是dynamic -% } init(_Args) -> - SupFlags = - #{ - strategy => simple_one_for_one, - intensity => 10, - period => 60 - }, + SupFlags = #{strategy => simple_one_for_one, intensity => 10, period => 60}, ChildSpecs = [ #{ id => lgHWatcherSrv,