diff --git a/include/eRum.hrl b/include/eRum.hrl index fb3ea80..7a95b32 100644 --- a/include/eRum.hrl +++ b/include/eRum.hrl @@ -17,58 +17,54 @@ %% 默认的元数据 %% Level, Pid, Node, Module, Function, FunctionArity, File, Line, Other -%% 获取元数据的宏定义 --define(RumMetadata(Extras), [ - {severity, info}, - {pid, self()}, - {node, node()}, - {module, ?MODULE}, - {function, ?FUNCTION_NAME}, - {function_arity, ?FUNCTION_ARITY}, - {file, ?FILE}, - {line, ?LINE} | Extras -]). - -define(rumLog(Severity, Format, Args, Safety), - ?rumLog(?RumDefSink, Severity, self(), node(), ?MODULE, ?FUNCTION_NAME, ?FILE, ?LINE, eRum:md(), Format, Args, ?RumDefTruncation, Safety)). + ?rumLog(?RumDefSink, Severity, self(), node(), ?MODULE, ?FUNCTION_NAME, ?LINE, eRum:md(), Format, Args, ?RumDefTruncation, Safety)). -define(rumLog(Severity, Metadata, Format, Args, Safety), - ?rumLog(?RumDefSink, Severity, self(), node(), ?MODULE, ?FUNCTION_NAME, ?FILE, ?LINE, Metadata ++ eRum:md(), Format, Args, ?RumDefTruncation, Safety)). + ?rumLog(?RumDefSink, Severity, self(), node(), ?MODULE, ?FUNCTION_NAME, ?LINE, Metadata ++ eRum:md(), Format, Args, ?RumDefTruncation, Safety)). --define(rumLog(Sink, Severity, Metadata, Format, Args, Size, Safety), +-define(rumLog(Sink, Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Safety), case ?eRumCfg:get(Sink) band Severity /= 0 of true -> - do_log_impl(Severity, Pid, Node, Module, Function, File, Line, Metadata, Format, Args, Severity, Size, Sink, Safety); + eRum:do_log_impl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Severity, Size, Sink, Safety); _ -> ok end). - %%eRum:dispatch_log(Sink, Severity, Pid, Node, Module, Function, File, Line, Metadata, Format, Args, Size, Safety)). +-define(rumNone(Format), ?rumLog(?none, Format, undefined, safe)). -define(rumNone(Format, Args), ?rumLog(?none, Format, Args, safe)). -define(rumNone(Metadata, Format, Args), ?rumLog(?none, Metadata, Format, Args, safe)). +-define(rumDebug(Format), ?rumLog(?debug, Format, undefined, safe)). -define(rumDebug(Format, Args), ?rumLog(?debug, Format, Args, safe)). -define(rumDebug(Metadata, Format, Args), ?rumLog(?debug, Metadata, Format, Args, safe)). +-define(rumInfo(Format), ?rumLog(?info, Format, undefined, safe)). -define(rumInfo(Format, Args), ?rumLog(?info, Format, Args, safe)). -define(rumInfo(Metadata, Format, Args), ?rumLog(?info, Metadata, Format, Args, safe)). +-define(rumNotice(Format), ?rumLog(?notice, Format, undefined, safe)). -define(rumNotice(Format, Args), ?rumLog(?notice, Format, Args, safe)). -define(rumNotice(Metadata, Format, Args), ?rumLog(?notice, Metadata, Format, Args, safe)). +-define(rumWarning(Format), ?rumLog(?warning, Format, undefined, safe)). -define(rumWarning(Format, Args), ?rumLog(?warning, Format, Args, safe)). -define(rumWarning(Metadata, Format, Args), ?rumLog(?warning, Metadata, Format, Args, safe)). +-define(rumError(Format), ?rumLog(?error, Format, undefined, safe)). -define(rumError(Format, Args), ?rumLog(?error, Format, Args, safe)). -define(rumError(Metadata, Format, Args), ?rumLog(?error, Metadata, Format, Args, safe)). +-define(rumCritical(Format), ?rumLog(?critical, Format, undefined, safe)). -define(rumCritical(Format, Args), ?rumLog(?critical, Format, Args, safe)). -define(rumCritical(Metadata, Format, Args), ?rumLog(?critical, Metadata, Format, Args, safe)). +-define(rumAlert(Format), ?rumLog(?alert, Format, undefined, safe)). -define(rumAlert(Format, Args), ?rumLog(?alert, Format, Args, safe)). -define(rumAlert(Metadata, Format, Args), ?rumLog(?alert, Metadata, Format, Args, safe)). +-define(rumEmergency(Format), ?rumLog(?emergency, Format, undefined, safe)). -define(rumEmergency(Format, Args), ?rumLog(?emergency, Format, Args, safe)). -define(rumEmergency(Metadata, Format, Args), ?rumLog(?emergency, Metadata, Format, Args, safe)). diff --git a/include/rumMsg.hrl b/include/rumMsg.hrl index bc52fc7..76adca4 100644 --- a/include/rumMsg.hrl +++ b/include/rumMsg.hrl @@ -13,14 +13,13 @@ , destinations :: list() }). --define(newMsg(Severity, Pid, Node, Module, Function, File, Line, Metadata, Destinations, TimeMs, Msg), +-define(newMsg(Severity, Pid, Node, Module, Function, Line, Metadata, Destinations, TimeMs, Msg), #rumMsg{ severity = Severity , pid =Pid , node = Node , module = Module , function = Function - , file =File , line =Line , metadata =Metadata , datetime = rumUtil:msToBinStr(TimeMs) diff --git a/src/eRum.erl b/src/eRum.erl index 2c5df11..53269ac 100644 --- a/src/eRum.erl +++ b/src/eRum.erl @@ -16,7 +16,8 @@ , stop/0 %% log and log param - , dispatch_log/13 + , dispatch_log/12 + , do_log_impl/13 , safe_format/3 , safe_format_chop/3 , unsafe_format/2 @@ -80,17 +81,17 @@ start() -> stop() -> application:stop(eRum). --spec dispatch_log(atom(), rumAtomLevel(), pid(), node(), atom(), atom(), atom(), integer(), list(), string(), list() | none, pos_integer(), safe | unsafe) -> ok | {error, lager_not_running} | {error, {sink_not_configured, atom()}}. +-spec dispatch_log(atom(), rumAtomLevel(), pid(), node(), atom(), atom(), integer(), list(), string(), list() | none, pos_integer(), safe | unsafe) -> ok | {error, lager_not_running} | {error, {sink_not_configured, atom()}}. %% this is the same check that the parse transform bakes into the module at compile time see rumTransform (lines 173-216) -dispatch_log(Sink, Severity, Pid, Node, Module, Function, File, Line, Metadata, Format, Args, Size, Safety) -> +dispatch_log(Sink, Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Safety) -> case ?eRumCfg:get(Sink) band Severity /= 0 of true -> - do_log_impl(Severity, Pid, Node, Module, Function, File, Line, Metadata, Format, Args, Severity, Size, Sink, Safety); + do_log_impl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Severity, Size, Sink, Safety); _ -> ok end. -do_log_impl(Severity, Pid, Node, Module, Function, File, Line, Metadata, Format, Args, Severity, Size, Sink, Safety) -> +do_log_impl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Severity, Size, Sink, Safety) -> %% IMY-todo TraceFilters = ? TraceFilters = [], {Destinations, TraceSinkPid} = @@ -101,8 +102,8 @@ do_log_impl(Severity, Pid, Node, Module, Function, File, Line, Metadata, Format, {rumUtil:check_traces(Metadata, Severity, TraceFilters, []), whereis(?RumTrackSink)} end, - Msg = ?IIF(Args /= [], ?IIF(Safety == safe, eFmt:formatBin(Format, [Args], [{charsLimit, Size}]), eFmt:formatBin(Format, [Args])), Format), - LagerMsg = ?newMsg(Severity, Pid, Node, Module, Function, File, Line, Metadata, Destinations, rumUtil:nowMs(), Msg), + Msg = ?IIF(Args /= [] andalso Args /= undefined, ?IIF(Safety == safe, eFmt:formatBin(Format, [Args], [{charsLimit, Size}]), eFmt:formatBin(Format, [Args])), Format), + LagerMsg = ?newMsg(Severity, Pid, Node, Module, Function, Line, Metadata, Destinations, rumUtil:nowMs(), Msg), case rumConfig:get({Sink, async}, false) of true -> gen_emm:info_notify(Sink, {mWriteLog, LagerMsg}); diff --git a/src/eRum1.erl b/src/eRum1.erl index bc6d1be..750c0d9 100644 --- a/src/eRum1.erl +++ b/src/eRum1.erl @@ -104,7 +104,7 @@ do_log_unsafe(Severity, Pid, Node, Module, Function, File, Line, Metadata, Forma FormatFun = fun() -> unsafe_format(Format, Args) end, do_log_impl(Severity, Pid, Node, Module, Function, File, Line, Metadata, Format, Args, SeverityAsInt, LevelThreshold, TraceFilters, Sink, SinkPid, FormatFun). -do_log_impl(Severity, Pid, Node, Module, Function, File, Line, Metadata, Format, Args, SeverityAsInt, LevelThreshold, TraceFilters, Sink, SinkPid, FormatFun) -> +do_log_impl(Severity, Pid, Node, Module, Function, _File, Line, Metadata, Format, Args, SeverityAsInt, LevelThreshold, TraceFilters, Sink, SinkPid, FormatFun) -> {Destinations, TraceSinkPid} = case TraceFilters of [] -> @@ -121,7 +121,7 @@ do_log_impl(Severity, Pid, Node, Module, Function, File, Line, Metadata, Format, _ -> Format end, - LagerMsg = ?newMsg(Severity, Pid, Node, Module, Function, File, Line, Metadata, Destinations, rumUtil:nowMs(), Msg), + LagerMsg = ?newMsg(Severity, Pid, Node, Module, Function, Line, Metadata, Destinations, rumUtil:nowMs(), Msg), case rumConfig:get({Sink, async}, false) of true -> gen_emm:info_notify(SinkPid, {mWriteLog, LagerMsg}); diff --git a/src/test.E b/src/test.E new file mode 100644 index 0000000..230bde8 --- /dev/null +++ b/src/test.E @@ -0,0 +1,57 @@ +-file("test.erl", 1). + +-module(test). + +-file("d:/gitClone/eRum/src/../include/eRum.hrl", 1). + +-file("d:/gitClone/eRum/src/../include/rumCom.hrl", 1). + +-file("d:/gitClone/eRum/src/../include/eRum.hrl", 1). + +-file("test.erl", 2). + +-compile(export_all). + +test1() -> + case eRumCfg:get(rumEvent) band 128 /= 0 of + true -> + eRum:do_log_impl(128, + self(), + node(), + test, test1, 7, + eRum:md(), + "IMY***************11", + undefined, 128, 4096, rumEvent, safe); + _ -> + ok + end, + 11111111111111111111111111111111, + case eRumCfg:get(rumEvent) band 128 /= 0 of + true -> + eRum:do_log_impl(128, + self(), + node(), + test, test1, 9, + eRum:md(), + "IMY***************", + [], 128, 4096, rumEvent, safe); + _ -> + ok + end, + 2222222222222222222222222222, + case eRumCfg:get(rumEvent) band 128 /= 0 of + true -> + eRum:do_log_impl(128, + self(), + node(), + test, test1, 11, + eRum:md(), + "IMY***************~p", + [1], + 128, 4096, rumEvent, safe); + _ -> + ok + end. + + + diff --git a/src/test.erl1 b/src/test.erl1 new file mode 100644 index 0000000..b9139b4 --- /dev/null +++ b/src/test.erl1 @@ -0,0 +1,13 @@ +-module(test). +-include("eRum.hrl"). + +-compile(export_all). + +test1() -> + ?rumDebug("IMY***************11"), + 11111111111111111111111111111111, + ?rumDebug("IMY***************", []), + 2222222222222222222222222222, + ?rumDebug("IMY***************~p", [1]). + +