Browse Source

rf: 代码优化

master
SisMaker 3 years ago
parent
commit
7f591b36fb
6 changed files with 19 additions and 58 deletions
  1. +13
    -7
      eLog.sample.config
  2. +2
    -2
      include/lgDef.hrl
  3. +1
    -1
      src/eLog.app.src
  4. +1
    -3
      src/eLog.erl
  5. +1
    -23
      src/eLog_sup.erl
  6. +1
    -22
      src/watcher/lgHWatcherSup.erl

+ 13
- 7
eLog.sample.config View File

@ -15,6 +15,10 @@
{emergency, <<"\e[1;41m">>} {emergency, <<"\e[1;41m">>}
]}, ]},
%% ********************************************** 日志文件配置相关 ************************************************
%% 可选的日志路径, 默认情况下是当前路径
{logRoot, <<"./log">>},
%%*********************************************** handler与接收器(sink) and traces ****************************** %%*********************************************** handler与接收器(sink) and traces ******************************
%% 消息处理模块可以存在多个,[{SinkModule, [lgConsoleOpt() | lgFileOpt()]}]=Handler() 消息处理模块可以存在多个 %% 消息处理模块可以存在多个,[{SinkModule, [lgConsoleOpt() | lgFileOpt()]}]=Handler() 消息处理模块可以存在多个
%% eg: {handlers, [ %% eg: {handlers, [
@ -22,7 +26,12 @@
%% {lgBkdFile, [{id, error}, {file, "error.log"}, {level, error}]}, %% {lgBkdFile, [{id, error}, {file, "error.log"}, {level, error}]},
%% {lgBkdConsole, [{level, info}]} %% {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}]}] %% 额外的接收器列表 [{SinkName, [{handlers, Handler()}|{asyncThreshold, 500}|{asyncThrWindow, 50}|{killerHwm, 1000}|{killerReTime, 5000}]}]
%% eg: {extraSinks, [ %% eg: {extraSinks, [
@ -48,6 +57,7 @@
%% ********************************************** killer相关 **************************************************** %% ********************************************** killer相关 ****************************************************
%% 如果接收器的邮箱大小超过1000条消息,请杀死整个接收器并在5000毫秒后重新加载它。如果需要,此行为也可以安装到其他接收器中。 %% 如果接收器的邮箱大小超过1000条消息,请杀死整个接收器并在5000毫秒后重新加载它。如果需要,此行为也可以安装到其他接收器中。
%% 格式 integer() | undefined 当值为undefined 禁用此功能
{killerHwm, 1000}, {killerHwm, 1000},
%% 参见killer_hwm %% 参见killer_hwm
{killerReTime, 5000}, {killerReTime, 5000},
@ -56,10 +66,6 @@
%% 元数据名单列表 %% 元数据名单列表
{mdWhitelist, []}, {mdWhitelist, []},
%% ********************************************** 日志文件配置相关 ************************************************
%% 可选的日志路径, 默认情况下是当前路径
{logRoot, <<"./log">>},
%% crash log cfg %% crash log cfg
%% 有效值 string | false 值为 false 的时候 没有 crash logger. %% 有效值 string | false 值为 false 的时候 没有 crash logger.
{crashLogFile, <<"crash.log">>}, {crashLogFile, <<"crash.log">>},
@ -85,9 +91,9 @@
{errLoggerGLS, handle}, {errLoggerGLS, handle},
%%是否禁止 disable reformatting for OTP and Cowboy messages false表示会格式化OTP和Cowboy的错误信息 %%是否禁止 disable reformatting for OTP and Cowboy messages false表示会格式化OTP和Cowboy的错误信息
{errLoggerFmtRaw, false}, {errLoggerFmtRaw, false},
%% 超过高水位标记时,可以将啤酒配置为刷新消息队列中的所有事件通知
%% 超过高水位标记时,可以配置为刷新消息队列中的所有事件通知
{errLoggerFlushQueue, true}, {errLoggerFlushQueue, true},
%% 如果flush_queue为true,则可以设置消息队列长度阈值,在该阈值处将开始丢弃消息。默认阈值为0,这意味着如果flush_queue为true,
%% 如果flush_queue为true,则可以设置消息队列缓存阈值,消息队列中消息数量超过该阈值处将开始丢弃消息。默认阈值为0,这意味着如果flush_queue为true,
%% 则超过高水位标记时将丢弃消息,而不管消息队列的长度如何。 %% 则超过高水位标记时将丢弃消息,而不管消息队列的长度如何。
{errLoggerFlushThr, 20}, {errLoggerFlushThr, 20},

+ 2
- 2
include/lgDef.hrl View File

@ -71,8 +71,8 @@
-define(LgDefHandler, -define(LgDefHandler,
[ [
{lgBkdConsole, [{level, '>=info'}]}, {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, { -record(lgShaper, {

+ 1
- 1
src/eLog.app.src View File

@ -7,6 +7,6 @@
{registered, []}, {registered, []},
{mod, {eLog_app, []}}, {mod, {eLog_app, []}},
{env, []}, {env, []},
{licenses, ["MIT License"]}
{licenses, ["MIT"]}
]}. ]}.

+ 1
- 3
src/eLog.erl View File

@ -69,7 +69,7 @@
}). }).
start() -> start() ->
application:ensure_all_started(eLog) .
application:ensure_all_started(eLog).
stop() -> stop() ->
application:stop(eLog). application:stop(eLog).
@ -215,11 +215,9 @@ rotateSink(Sink) ->
rotateAll() -> rotateAll() ->
rotateHandlers(lists:map(fun({H, _, S}) -> {H, S} end, lgConfig:ptGet(handlers, []))). rotateHandlers(lists:map(fun({H, _, S}) -> {H, S} end, lgConfig:ptGet(handlers, []))).
rotateHandlers(Handlers) -> rotateHandlers(Handlers) ->
[rotateHandler(Handler, Sink) || {Handler, Sink} <- Handlers]. [rotateHandler(Handler, Sink) || {Handler, Sink} <- Handlers].
rotateHandler(Handler) -> rotateHandler(Handler) ->
Handlers = lgConfig:ptGet(handlers, []), Handlers = lgConfig:ptGet(handlers, []),
case lists:keyfind(Handler, 1, Handlers) of case lists:keyfind(Handler, 1, Handlers) of

+ 1
- 23
src/eLog_sup.erl View File

@ -16,33 +16,11 @@
start_link() -> start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []). 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 {MFA}
% 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] supervisorgen_server gen_fsmModule gen_eventModules dynamic
% }
init(_Args) -> init(_Args) ->
%% set up the config, is safe even during relups %% set up the config, is safe even during relups
?eLogInit(), ?eLogInit(),
%%lgEvent作为默认值启动gen_event东西也许是一个用于处理接收器及其策略的新API %%lgEvent作为默认值启动gen_event东西也许是一个用于处理接收器及其策略的新API
SupFlags =
#{
strategy => one_for_one,
intensity => 10,
period => 60
},
SupFlags = #{strategy => one_for_one, intensity => 10, period => 60},
LgEventSpec = #{ LgEventSpec = #{
id => ?LgDefSink, id => ?LgDefSink,

+ 1
- 22
src/watcher/lgHWatcherSup.erl View File

@ -11,29 +11,8 @@
start_link() -> start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []). 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 {MFA}
% 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] supervisorgen_server gen_fsmModule gen_eventModules dynamic
% }
init(_Args) -> init(_Args) ->
SupFlags =
#{
strategy => simple_one_for_one,
intensity => 10,
period => 60
},
SupFlags = #{strategy => simple_one_for_one, intensity => 10, period => 60},
ChildSpecs = [ ChildSpecs = [
#{ #{
id => lgHWatcherSrv, id => lgHWatcherSrv,

Loading…
Cancel
Save