浏览代码

ft: 代码整理

master
SisMaker 4 年前
父节点
当前提交
c3048029af
共有 8 个文件被更改,包括 71 次插入72 次删除
  1. +1
    -1
      eRum.sample.config
  2. +46
    -43
      include/eRum.hrl
  3. +1
    -1
      src/crashLog/rumCrashLog.erl
  4. +3
    -3
      src/eRum.erl
  5. +3
    -3
      src/errLogger/rumErrLoggerH.erl
  6. +15
    -16
      src/formatter/rumFormatter.erl
  7. +1
    -4
      src/transform/rumTransform.erl
  8. +1
    -1
      test/lager_metadata_whitelist_test.erl

+ 1
- 1
eRum.sample.config 查看文件

@ -16,7 +16,7 @@
]},
%% ******************************************** format相关 ******************************************************
{metadata_whitelist, []},
{metadataWhitelist, []},
{reverse_pretty_stacktrace, true},
%%*********************************************** 异步日志相关 *****************************************************

+ 46
- 43
include/eRum.hrl 查看文件

@ -1,3 +1,6 @@
%%
-define(RumAppName, eRum).
%%
-define(IIF(Cond, Ret1, Ret2), (case Cond of true -> Ret1; _ -> Ret2 end)).
@ -7,12 +10,12 @@
-define(Print(Args), io:format("IMY************~p~n", [Args])).
-define(LAGER_MD_KEY, '__lager_metadata').
-define(TRACE_SINK, '__trace_sink').
-define(ROTATE_TIMEOUT, 100000).
%% key
-define(PdMdKey, pdRumMd).
-define(RumTrackSink, '__trace_sink').
%%
-define(RumAppName, eRum).
%%
-define(ROTATE_TIMEOUT, 100000).
%%
-define(RumDefTruncation, 4096).
@ -20,6 +23,7 @@
-define(RumDefSink, rumEvent).
-define(RumErrLogSink, error_logger_lager_event).
%% rumBkdConsole的选项
-type rumConsoleOpt() ::
{id, atom() | {atom(), atom()}} |
{use_stderr, boolean()} |
@ -27,9 +31,10 @@
{formatter, atom()} |
{formatter_config, list()}.
%% rumBkdFile的选项
-type rumFileOpt() ::
{file, string()} |
{level, rumAtomLevel()} |
{file, binary()} |
{level, rumAtomLevel() | atom()} |
{size, non_neg_integer()} |
{date, string()} |
{count, non_neg_integer()} |
@ -44,7 +49,7 @@
{formatter, atom()} |
{formatter_config, term()}.
%% BkdFile默认配置
%% BkdFile选项默认值
-define(RumDefLogLevel, info).
-define(RumDefRotateSize, 10485760). %% 10mb
-define(RumDefRotateDate, "$D0"). %% midnight
@ -60,8 +65,6 @@
-define(RumDefFormatter, rumFormatter).
-define(RumDefFormatterCfg, []).
%% Key
%%
-define(RumDefHandler,
[
@ -82,6 +85,38 @@
{line, ?LINE} | Extras
]).
-record(rumShaper, {
id :: any()
%%
, hwm = undefined :: 'undefined' | pos_integer()
%%
, mps = 0 :: non_neg_integer()
%%
, lastTime = rumTime:now() :: erlang:timestamp()
%%
, dropped = 0 :: non_neg_integer()
%% If true, flush notify messages from msg queue at overload
%% true
, flushQueue = true :: boolean()
, flushThreshold = 0 :: integer()
%% timer
, timer = make_ref() :: reference()
%% optional filter fun to avoid counting suppressed messages against HWM totals
%% HWM总数计算抑制消息
, filter = fun(_) -> false end :: fun()
}).
-record(rumMsg, {
destinations :: list(),
metadata :: [tuple()],
severity :: rumAtomLevel(),
datetime :: binary(),
timestamp :: non_neg_integer(),
message :: list()
}).
-type rumShaper() :: #rumShaper{}.
-type rumAtomLevel() :: none | debug | info | notice | warning | error | critical | alert | emergency.
-type rumMaskLevel() :: 0..256.
@ -122,8 +157,7 @@
-else.
-define(INT_LOG(Level, Format, Args),
Self = self(),
%% do this in a spawn so we don't cause a deadlock calling gen_event:which_handlers
%% from a gen_event handler
%%gen_event处理程序调用gen_eventwhich_handlers的死锁
spawn(fun() ->
case catch (gen_event:which_handlers(rumEvent)) of
X when X == []; X == {'EXIT', noproc}; X == [rumBkdThrottle] ->
@ -178,34 +212,3 @@
-define(rumNone(Format, Args), ?rumLog(none, Format, Args, safe)).
-define(rumNone(Metadata, Format, Args), ?rumLog(none, Metadata, Format, Args, safe)).
-record(rumShaper, {
id :: any()
%%
, hwm = undefined :: 'undefined' | pos_integer()
%%
, mps = 0 :: non_neg_integer()
%%
, lastTime = rumTime:now() :: erlang:timestamp()
%%
, dropped = 0 :: non_neg_integer()
%% If true, flush notify messages from msg queue at overload
%% true
, flushQueue = true :: boolean()
, flushThreshold = 0 :: integer()
%% timer
, timer = make_ref() :: reference()
%% optional filter fun to avoid counting suppressed messages against HWM totals
%% HWM总数计算抑制消息
, filter = fun(_) -> false end :: fun()
}).
-record(rumMsg, {
destinations :: list(),
metadata :: [tuple()],
severity :: rumAtomLevel(),
datetime :: binary(),
timestamp :: non_neg_integer(),
message :: list()
}).
-type rumShaper() :: #rumShaper{}.

+ 1
- 1
src/crashLog/rumCrashLog.erl 查看文件

@ -41,7 +41,7 @@
, maxFileSize :: integer() %%
, date :: undefined | string() %%
, count :: integer() %%
, flap = false :: boolean() %%
, flap = false :: boolean() %%
, rotator :: atom() %%
}).

+ 3
- 3
src/eRum.erl 查看文件

@ -140,7 +140,7 @@ do_log_impl(Severity, Metadata, Format, Args, SeverityAsInt, LevelThreshold, Tra
[] ->
{[], undefined};
_ ->
{rumUtil:check_traces(Metadata, SeverityAsInt, TraceFilters, []), whereis(?TRACE_SINK)}
{rumUtil:check_traces(Metadata, SeverityAsInt, TraceFilters, []), whereis(?RumTrackSink)}
end,
case (LevelThreshold band SeverityAsInt) /= 0 orelse Destinations /= [] of
true ->
@ -187,7 +187,7 @@ dispatch_log(Severity, Metadata, Format, Args, Size) ->
%% @doc Get lager metadata for current process
-spec md() -> [{atom(), any()}].
md() ->
case erlang:get(?LAGER_MD_KEY) of
case erlang:get(?PdMdKey) of
undefined -> [];
MD -> MD
end.
@ -202,7 +202,7 @@ md(NewMD) when is_list(NewMD) ->
(_) -> false
end, NewMD) of
true ->
erlang:put(?LAGER_MD_KEY, NewMD),
erlang:put(?PdMdKey, NewMD),
ok;
false ->
erlang:error(badarg)

+ 3
- 3
src/errLogger/rumErrLoggerH.erl 查看文件

@ -314,7 +314,7 @@ logEvent(Event, #state{sink = Sink, raw = FormatRaw} = State) ->
end;
{error_report, _GL, {Pid, crash_report, [Self, Neighbours]}} ->
?CRASH_LOG(Event),
{Md, Formatted} = format_crash_report(Self, Neighbours),
{Md, Formatted} = formatCrashReport(Self, Neighbours),
?LOGMSG(Sink, error, [{pid, Pid} | Md], "CRASH REPORT " ++ Formatted);
{warning_msg, _GL, {Pid, Fmt, Args}} ->
?LOGFMT(Sink, warning, Pid, Fmt, Args);
@ -374,7 +374,7 @@ logEvent(Event, #state{sink = Sink, raw = FormatRaw} = State) ->
{ok, State#state{shaper = Shaper#rumShaper{mps = Shaper#rumShaper.mps - 1}}}
end.
format_crash_report(Report, Neighbours) ->
formatCrashReport(Report, Neighbours) ->
Name =
case get_value(registered_name, Report, []) of
[] ->
@ -389,7 +389,7 @@ format_crash_report(Report, Neighbours) ->
[];
Dict ->
%% pull the lager metadata out of the process dictionary, if we can
get_value('_lager_metadata', Dict, [])
get_value(?PdMdKey, Dict, [])
end,
{Class, Reason, Trace} = get_value(error_info, Report),

+ 15
- 16
src/formatter/rumFormatter.erl 查看文件

@ -6,10 +6,10 @@
-include_lib("eunit/include/eunit.hrl").
-endif.
%%
%% Exported Functions
%%
-export([format/2, format/3]).
-export([
format/2
, format/3
]).
%%
%% API Functions
@ -39,16 +39,19 @@
format(Msg, [], Colors) ->
format(Msg, [{eol, "\n"}], Colors);
format(Msg, [{eol, EOL}], Colors) ->
Config = case application:get_env(lager, metadata_whitelist) of
undefined -> config(EOL, []);
{ok, Whitelist} -> config(EOL, Whitelist)
end,
Config =
case rumUtil:get_env(metadataWhitelist, undefined) of
undefined -> config(EOL, []);
Whitelist -> config(EOL, Whitelist)
end,
format(Msg, Config, Colors);
format(Message, Config, Colors) ->
[case V of
color -> output_color(Message, Colors);
_ -> output(V, Message)
end || V <- Config].
[
case V of
color -> output_color(Message, Colors);
_ -> output(V, Message)
end || V <- Config
].
-spec format(rumMsg:rumMsg(), list()) -> any().
format(Msg, Config) ->
@ -170,16 +173,12 @@ make_printable(A, _W) -> make_printable(A).
%% persistent term was introduced in OTP 21.2, so
%% if we're running on an older OTP, just return the
%% default value.
-ifdef(OTP_RELEASE).
maybe_get_persistent_term(Key, Default) ->
try
persistent_term:get(Key, Default)
catch
_:undef -> Default
end.
-else.
maybe_get_persistent_term(_Key, Default) -> Default.
-endif.
run_function(Function, Default) ->
try Function() of

+ 1
- 4
src/transform/rumTransform.erl 查看文件

@ -66,9 +66,7 @@ walk_body(Acc, []) ->
walk_body(Acc, [H | T]) ->
walk_body([transform_statement(H, get(sinks)) | Acc], T).
transform_statement({call, Line, {remote, _Line1, {atom, _Line2, Module},
{atom, _Line3, Function}}, Arguments0} = Stmt,
Sinks) ->
transform_statement({call, Line, {remote, _Line1, {atom, _Line2, Module}, {atom, _Line3, Function}}, Arguments0} = Stmt, Sinks) ->
case lists:member(Module, Sinks) of
true ->
case lists:member(Function, ?RumLevels) of
@ -94,7 +92,6 @@ transform_statement(Stmt, Sinks) when is_list(Stmt) ->
transform_statement(Stmt, _Sinks) ->
Stmt.
add_function_transforms(_Line, DefaultAttrs, []) ->
DefaultAttrs;
add_function_transforms(Line, DefaultAttrs, [{Atom, on_emit, {Module, Function}} | Remainder]) ->

+ 1
- 1
test/lager_metadata_whitelist_test.erl 查看文件

@ -15,7 +15,7 @@ setup() ->
ok.
cleanup(_) ->
ok = application:unset_env(lager, metadata_whitelist),
ok = application:unset_env(lager, metadataWhitelist),
catch ets:delete(lager_config), %% kill the ets config table with fire
ok = application:stop(lager),
ok = application:stop(goldrush),

正在加载...
取消
保存