|
|
@ -41,18 +41,30 @@ |
|
|
|
raw :: boolean() |
|
|
|
}). |
|
|
|
|
|
|
|
-define(LOGMSG(Sink, Severity, Pid, Msg), |
|
|
|
-define(LOGMSG(Sink, Severity, PidOrMd, Msg), |
|
|
|
case ?LgShouldLog(Sink, Severity) of |
|
|
|
true -> |
|
|
|
eLog:doLogImpl(Severity, Pid, undefined, undefined, undefined, 0, [], Msg, [], 0, Sink, safe), |
|
|
|
case is_pid(PidOrMd) of |
|
|
|
true -> |
|
|
|
eLog:doLogImpl(Severity, PidOrMd, undefined, undefined, undefined, 0, [], Msg, [], 0, Sink, safe); |
|
|
|
_ -> |
|
|
|
eLog:doLogImpl(Severity, self(), undefined, undefined, undefined, 0, PidOrMd, Msg, [], 0, Sink, safe) |
|
|
|
end, |
|
|
|
logged; |
|
|
|
_ -> no_log |
|
|
|
end). |
|
|
|
|
|
|
|
-define(LOGFMT(Sink, Severity, Pid, Fmt, Args), |
|
|
|
% doLogImpl(Severity, Pid, Node, Module, Function, Line, Metadata, Format, Args, Size, Sink, Safety) |
|
|
|
|
|
|
|
-define(LOGFMT(Sink, Severity, PidOrMd, Fmt, Args), |
|
|
|
case ?LgShouldLog(Sink, Severity) of |
|
|
|
true -> |
|
|
|
eLog:doLogImpl(Severity, Pid, undefined, undefined, undefined, 0, [], Fmt, Args, 0, Sink, safe), |
|
|
|
case is_pid(PidOrMd) of |
|
|
|
true -> |
|
|
|
eLog:doLogImpl(Severity, PidOrMd, undefined, undefined, undefined, 0, [], Fmt, Args, 0, Sink, safe); |
|
|
|
_ -> |
|
|
|
eLog:doLogImpl(Severity, self(), undefined, undefined, undefined, 0, PidOrMd, Fmt, Args, 0, Sink, safe) |
|
|
|
end, |
|
|
|
logged; |
|
|
|
_ -> no_log |
|
|
|
end). |
|
|
@ -74,9 +86,6 @@ init([HighWaterMark, GlStrategy]) -> |
|
|
|
Flush = lgUtil:get_env(errLoggerFlushQueue, true), |
|
|
|
FlushThr = lgUtil:get_env(errLoggerFlushThr, 20), |
|
|
|
Shaper = #lgShaper{hwm = HighWaterMark, flushQueue = Flush, flushThr = FlushThr, filter = shaperFun(), id = ?MODULE}, |
|
|
|
|
|
|
|
io:format("IMY*******************init1111111 ~p~n", [Shaper]), |
|
|
|
|
|
|
|
Raw = lgUtil:get_env(errLoggerFmtRaw, false), |
|
|
|
Sink = configSink(), |
|
|
|
{ok, #state{sink = Sink, shaper = Shaper, groupleader_strategy = GlStrategy, raw = Raw}}. |
|
|
@ -415,7 +424,7 @@ formatOffender(Off) -> |
|
|
|
formatReason(Reason) -> |
|
|
|
element(2, formatReasonMd(Reason)). |
|
|
|
|
|
|
|
-spec formatReasonMd(Stacktrace :: any()) -> {Metadata :: [{atom(), any()}], String :: list()}. |
|
|
|
-spec formatReasonMd(Reason :: any()) -> {Metadata :: [{atom(), any()}], String :: list()}. |
|
|
|
formatReasonMd({'function not exported', [{M, F, A}, MFA | _]}) -> |
|
|
|
{Md, Formatted} = formatMfaMd(MFA), |
|
|
|
{_, Formatted2} = formatMfaMd({M, F, length(A)}), |
|
|
@ -516,7 +525,7 @@ formatReasonMd({Reason, [{M, F, A, Props} | _]}) when is_atom(M), is_atom(F), is |
|
|
|
{_, Formatted2} = formatMfaMd({M, F, A, Props}), |
|
|
|
{Md, <<Formatted/binary, " in ", Formatted2/binary>>}; |
|
|
|
formatReasonMd(Reason) -> |
|
|
|
eFtm:formatBin(<<"~p">>, [Reason], [{charsLimit, 500}]). |
|
|
|
{[], eFmt:formatBin(<<"~p">>, [Reason], [{charsLimit, 500}])}. |
|
|
|
|
|
|
|
%% backwards compatability shim |
|
|
|
formatMfa(MFA) -> |
|
|
@ -525,9 +534,9 @@ formatMfa(MFA) -> |
|
|
|
-spec formatMfaMd(any()) -> {[{atom(), any()}], list()}. |
|
|
|
formatMfaMd({M, F, A}) when is_list(A) -> |
|
|
|
ArgsStr = formatArgs(A, <<>>), |
|
|
|
{[{module, M}, {function, F}], eFtm:formatBin(<<"~w:~w(", ArgsStr/binary, ")">>, [M, F])}; |
|
|
|
{[{module, M}, {function, F}], eFmt:formatBin(<<"~w:~w(", ArgsStr/binary, ")">>, [M, F])}; |
|
|
|
formatMfaMd({M, F, A}) when is_integer(A) -> |
|
|
|
{[{module, M}, {function, F}], eFtm:formatBin(<<"~w:~w/~w">>, [M, F, A])}; |
|
|
|
{[{module, M}, {function, F}], eFmt:formatBin(<<"~w:~w/~w">>, [M, F, A])}; |
|
|
|
formatMfaMd({M, F, A, Props}) when is_list(Props) -> |
|
|
|
case get_value(line, Props) of |
|
|
|
undefined -> |
|
|
@ -545,7 +554,7 @@ formatMfaMd([{M, F, A, Props} | _]) when is_list(Props) -> |
|
|
|
%% to print a lower one, but it is hard to programatically decide. |
|
|
|
formatMfaMd({M, F, A, Props}); |
|
|
|
formatMfaMd(Other) -> |
|
|
|
{[], eFtm:formatBin(<<"~w">>, [Other])}. |
|
|
|
{[], eFmt:formatBin(<<"~w">>, [Other])}. |
|
|
|
|
|
|
|
formatArgs([], ArgsAcc) -> |
|
|
|
ArgsAcc; |
|
|
@ -581,36 +590,26 @@ shaperFun() -> |
|
|
|
AppSS = lgUtil:get_env(suppressAppStartStop, false), |
|
|
|
if |
|
|
|
SupSS andalso AppSS -> |
|
|
|
io:format("IMY********************shaperFun11111111"), |
|
|
|
fun ?MODULE:suppress_supervisor_start_and_application_start/1; |
|
|
|
SupSS -> |
|
|
|
io:format("IMY********************shaperFun22222"), |
|
|
|
fun ?MODULE:suppress_supervisor_start/1; |
|
|
|
AppSS -> |
|
|
|
io:format("IMY********************shaperFun33333333333"), |
|
|
|
fun ?MODULE:suppress_application_start/1; |
|
|
|
true -> |
|
|
|
io:format("IMY********************shaperFun44444"), |
|
|
|
undefined |
|
|
|
end. |
|
|
|
|
|
|
|
suppress_supervisor_start_and_application_start(E) -> |
|
|
|
io:format("IMY********************Fun111111"), |
|
|
|
suppress_supervisor_start(E) orelse suppress_application_start(E). |
|
|
|
|
|
|
|
suppress_application_start({info_report, _GL, {_Pid, std_info, D}}) when is_list(D) -> |
|
|
|
io:format("IMY********************Fun14324234"), |
|
|
|
lists:member({exited, stopped}, D); |
|
|
|
suppress_application_start({info_report, _GL, {_P, progress, D}}) -> |
|
|
|
io:format("IMY********************Fun14332424"), |
|
|
|
lists:keymember(application, 1, D) andalso lists:keymember(started_at, 1, D); |
|
|
|
suppress_application_start(_) -> |
|
|
|
io:format("IMY********************Fun14334343"), |
|
|
|
false. |
|
|
|
|
|
|
|
suppress_supervisor_start({info_report, _GL, {_P, progress, D}}) -> |
|
|
|
io:format("IMY********************Fun324324"), |
|
|
|
lists:keymember(started, 1, D) andalso lists:keymember(supervisor, 1, D); |
|
|
|
suppress_supervisor_start(_) -> |
|
|
|
io:format("IMY********************Fun432432"), |
|
|
|
false. |