From f82e8a465e69732a42fda5700cfc749554f38e51 Mon Sep 17 00:00:00 2001 From: lijie <1713699517@qq.com> Date: Thu, 25 May 2023 17:34:38 +0800 Subject: [PATCH] =?UTF-8?q?ft:=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 --- README.md | 2 +- include/eLog.hrl | 9 ++------- include/lgCom.hrl | 7 +++++++ include/lgDef.hrl | 11 +++++------ src/backend/lgBkdFile.erl | 12 ++++++------ src/eLog.erl | 28 ++++++++++++++++------------ 6 files changed, 37 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 208ceb9..8db73c3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ 概述 -------- -eLog is a Erlang logger. 基于lager3.9.0 rewrite +eLog is a Erlang logger. 基于lager3.9.2 rewrite TODO -------- diff --git a/include/eLog.hrl b/include/eLog.hrl index 9ab8bc3..3fcbb91 100644 --- a/include/eLog.hrl +++ b/include/eLog.hrl @@ -19,15 +19,10 @@ ?lgLog(?LgDefSink, Severity, self(), node(), ?MODULE, ?FUNCTION_NAME, ?LINE, eLog:getMd(), Format, Args, ?LgDefTruncation, Safety)). -define(lgLog(Severity, Metadata, Format, Args, Safety), - ?lgLog(?LgDefSink, Severity, self(), node(), ?MODULE, ?FUNCTION_NAME, ?LINE, Metadata ++ eLog:getMd(), Format, Args, ?LgDefTruncation, Safety)). + ?lgLog(?LgDefSink, Severity, self(), node(), ?MODULE, ?FUNCTION_NAME, ?LINE, ?IIF(eLog:getMdPd(), undefined, Metadata, Md, Metadata ++ Md), Format, Args, ?LgDefTruncation, Safety)). -define(lgLog(Sink, Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Safety), - case ?eLogCfg:get(Sink) band Severity of - 0 -> - ok; - _ -> - eLog:doLogImpl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Sink, Safety) - end). + (?eLogCfg:get(Sink) band Severity == Severity andalso eLog:doLogImpl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Sink, Safety))). -define(lgNone(Format), ?lgLog(?llvNone, Format, undefined, safe)). -define(lgNone(Format, Args), ?lgLog(?llvNone, Format, Args, safe)). diff --git a/include/lgCom.hrl b/include/lgCom.hrl index 1175d03..08847ad 100644 --- a/include/lgCom.hrl +++ b/include/lgCom.hrl @@ -1,6 +1,13 @@ -ifndef(__lgCom__). -define(__lgCom__, 1). +%% 三目元算符 +-define(IIF(Cond, Then, That), case Cond of true -> Then; _ -> That end). +-define(IIF(Expr, Expect, Then, ExprRet, That), case Expr of Expect -> Then; ExprRet -> That end). + +%% IF-DO表达式 +-define(IF(IFTure, DoThat), (IFTure) andalso (DoThat)). + %% 配置模块 -define(eLogCfg, eLogCfg). -define(eLogEts, eLogEts). diff --git a/include/lgDef.hrl b/include/lgDef.hrl index 1db7166..6f16296 100644 --- a/include/lgDef.hrl +++ b/include/lgDef.hrl @@ -2,9 +2,6 @@ %% 应用名字 -define(LgAppName, eLog). -%% 三元表达式 --define(IIF(Cond, Then, That), (case Cond of true -> Then; _ -> That end)). - %% 错误日志宏定义 -define(ERR(Format), error_logger:error_msg(Format)). -define(ERR(Format, Args), error_logger:error_msg(Format, Args)). @@ -67,12 +64,14 @@ -define(LgDefFormatterCfg, []). -define(LgDefLogRoot, <<"./log">>). + + %% 默认日志文件选项 -define(LgDefHandler, [ - {lgBkdConsole, [{level, '>=info'}]}, - {lgBkdFile, [{id, error}, {file, <<"error.log">>}, {level, '>=error'}, {size, 10485760}, {date, <<"$D0">>}]}, - {lgBkdFile, [{id, console}, {file, <<"console.log">>}, {level, '>=debug'}, {size, 10485760}, {date, <<"$D0">>}]} + % {lgBkdConsole, [{level, '>=info'}]}, + {lgBkdFile, [{id, info}, {file, <<"info.log">>}, {level, '>= info'}, {size, 10485760}, {date, <<"$D0">>}]}, + {lgBkdFile, [{id, error}, {file, <<"error.log">>}, {level, '>= error'}, {size, 10485760}, {date, <<"$D0">>}]} ]). -record(lgShaper, { diff --git a/src/backend/lgBkdFile.erl b/src/backend/lgBkdFile.erl index e29c135..675433e 100644 --- a/src/backend/lgBkdFile.erl +++ b/src/backend/lgBkdFile.erl @@ -122,9 +122,9 @@ handleCall(_Msg, _State) -> ?ERR(<<"~p call receive unexpect msg ~p ~n ">>, [?MODULE, _Msg]), {reply, ok}. -handleEvent({mWriteLog, Message}, #state{fBName = FBName, level = Level, shaper = Shaper, fmtTer = FmtTer, fmtCfg = FmtCfg} = State) -> - case lgUtil:isLoggAble(Message, Level, {lgBkdFile, FBName}) of - true -> +handleEvent({mWriteLog, Message}, #state{shaper = Shaper, fmtTer = FmtTer, fmtCfg = FmtCfg} = State) -> + %case lgUtil:isLoggAble(Message, Level, {lgBkdFile, FBName}) of + %true -> #lgMsg{timestamp = Timestamp, severity = Severity} = Message, case lgUtil:checkHwm(Shaper) of {true, _Drop, NewShaper} -> @@ -145,9 +145,9 @@ handleEvent({mWriteLog, Message}, #state{fBName = FBName, level = Level, shaper {false, _, NewShaper} -> {noreply, State#state{shaper = NewShaper}} end; - _ -> - kpS - end; + % _ -> + % kpS + %end; handleEvent(_Msg, _State) -> ?ERR(<<"~p event receive unexpect msg ~p ~n ">>, [?MODULE, _Msg]), kpS. diff --git a/src/eLog.erl b/src/eLog.erl index 5ba2914..70ccf28 100644 --- a/src/eLog.erl +++ b/src/eLog.erl @@ -19,6 +19,7 @@ , unsafeFormat/2 , getMd/0 , setMd/1 + , getMdPd/0 , getLogLevel/1 , getLogLevel/2 , setLogLevel/2 @@ -76,12 +77,7 @@ stop() -> -spec dispatchLog(atom(), lgAtomLevel(), pid(), node(), atom(), atom(), integer(), list(), string(), list() | none, pos_integer(), safe | unsafe) -> ok. dispatchLog(Sink, Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Safety) -> - case ?eLogCfg:get(Sink) band Severity =/= 0 of - true -> - doLogImpl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Sink, Safety); - _ -> - ok - end. + ?eLogCfg:get(Sink) band Severity == Severity andalso doLogImpl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Sink, Safety). doLogImpl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Sink, Safety) -> TraceFilters = lgConfig:ptGet({Sink, trace}, []), @@ -98,12 +94,15 @@ doLogImpl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, S _ -> gen_emm:call_notify(Sink, {mWriteLog, LgMsg}) end, - case whereis(?LgTrackSink) of - undefined -> - ok; - TraceSinkPid -> - gen_emm:info_notify(TraceSinkPid, {mWriteLog, LgMsg}) - end. + + %% 这个功能还没用上 + % case whereis(?LgTrackSink) of + % undefined -> + % ok; + % TraceSinkPid -> + % gen_emm:info_notify(TraceSinkPid, {mWriteLog, LgMsg}) + % end. + ok. %% @doc Get metadata for current process -spec getMd() -> [{atom(), any()}]. @@ -113,6 +112,11 @@ getMd() -> MD -> MD end. +%% @doc Get metadata for current process +-spec getMdPd() -> term(). +getMdPd() -> + erlang:get(?PdMdKey). + %% @doc Set metadata for current process. %% Will badarg if you don't supply a list of {key, value} tuples keyed by atoms. -spec setMd([{atom(), any()}, ...]) -> ok.