瀏覽代碼

ft: 代码修改

SisMaker 4 年之前
父節點
當前提交
6adb631de2
共有 7 個檔案被更改,包括 30 行新增32 行删除
  1. +3
    -3
      include/eRum.hrl
  2. +1
    -1
      src/backend/rumBkdConsole.erl
  3. +9
    -11
      src/backend/rumBkdFile.erl
  4. +7
    -7
      src/eRum.erl
  5. +1
    -1
      src/test/lager_common_test_backend.erl
  6. +4
    -4
      src/utils/rumMsg.erl
  7. +5
    -5
      src/utils/rumUtil.erl

+ 3
- 3
include/eRum.hrl 查看文件

@ -52,8 +52,8 @@
{line, ?LINE} | Extras
]).
-type rumLevel() :: none | debug | info | notice | warning | error | critical | alert | emergency.
-type rumLevelNum() :: 0..256.
-type rumAtomLevel() :: none | debug | info | notice | warning | error | critical | alert | emergency.
-type rumMaskLevel() :: 0..256.
%%
@ -172,7 +172,7 @@
-record(rumMsg, {
destinations :: list(),
metadata :: [tuple()],
severity :: rumLevel(),
severity :: rumAtomLevel(),
datetime :: binary(),
timestamp :: non_neg_integer(),
message :: list()

+ 1
- 1
src/backend/rumBkdConsole.erl 查看文件

@ -29,7 +29,7 @@
-define(DefOpts, [{use_stderr, false}, {group_leader, false}, {id, ?MODULE}, {formatter, rumFormatter}, {formatter_config, ?DEFAULT_FORMAT_CONFIG}]).
-record(state, {
level :: integer(),
level :: rumMaskLevel(),
out = user :: user | standard_error | pid(),
id :: atom() | {atom(), any()},
formatter :: atom(),

+ 9
- 11
src/backend/rumBkdFile.erl 查看文件

@ -32,7 +32,7 @@
-record(state, {
fileName :: string(),
level :: integer(),
level :: rumMaskLevel(),
fd :: file:io_device() | undefined,
inode :: integer() | undefined,
ctime :: file:date_time() | undefined,
@ -54,7 +54,7 @@
-type option() ::
{file, string()} |
{level, rumLevel()} |
{level, rumAtomLevel()} |
{size, non_neg_integer()} |
{date, string()} |
{count, non_neg_integer()} |
@ -64,7 +64,7 @@
{flush_threshold, non_neg_integer()} |
{sync_interval, non_neg_integer()} |
{sync_size, non_neg_integer()} |
{sync_on, rumLevel()} |
{sync_on, rumAtomLevel()} |
{check_interval, non_neg_integer()} |
{formatter, atom()} |
{formatter_config, term()}.
@ -147,15 +147,13 @@ handleEvent({mWriteLog, Message}, #state{fileName = FileName, level = Level, sha
NewState =
case Drop > 0 of
true ->
Report = io_lib:format("lager_file_backend dropped ~p messages in the last second that exceeded the limit of ~p messages/sec", [Drop, Hwm]),
Report = eFmt:format("lager_file_backend dropped ~p messages in the last second that exceeded the limit of ~p messages/sec", [Drop, Hwm]),
ReportMsg = rumMsg:new(Report, warning, [], []),
write(State, rumMsg:timestamp(ReportMsg), rumMsg:severity_as_int(ReportMsg), Formatter:format(ReportMsg, FormatConfig));
_ ->
State
end,
{ok, write(NewState#state{shaper = NewShaper},
rumMsg:timestamp(Message), rumMsg:severity_as_int(Message),
Formatter:format(Message, FormatConfig))};
{ok, write(NewState#state{shaper = NewShaper}, rumMsg:timestamp(Message), rumMsg:severity_as_int(Message), Formatter:format(Message, FormatConfig))};
{false, _, #rumShaper{dropped = D} = NewShaper} ->
{ok, State#state{shaper = NewShaper#rumShaper{dropped = D + 1}}}
end;
@ -180,12 +178,12 @@ handleInfo({mShaperExpired, Name}, #state{shaper = Shaper, fileName = Name, form
"lager_file_backend dropped ~p messages in the last second that exceeded the limit of ~p messages/sec",
[Dropped, Shaper#rumShaper.hwm]),
ReportMsg = rumMsg:new(Report, warning, [], []),
write(State, rumMsg:timestamp(ReportMsg),
rumMsg:severity_as_int(ReportMsg), Formatter:format(ReportMsg, FormatConfig))
write(State, rumMsg:timestamp(ReportMsg), rumMsg:severity_as_int(ReportMsg), Formatter:format(ReportMsg, FormatConfig))
end,
{ok, State#state{shaper = Shaper#rumShaper{dropped = 0, mps = 0, lastTime = os:timestamp()}}};
handleInfo(_Info, State) ->
{ok, State}.
handleInfo(_Msg, State) ->
?ERR("~p info receive unexpect msg ~p ~n ", [?MODULE, _Msg]),
kpS.
terminate(_Reason, State) ->
%% leaving this function call unmatched makes dialyzer cranky

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

@ -69,7 +69,7 @@
-record(trace_func_state_v1, {
pid :: undefined | pid(),
level :: rumLevel(),
level :: rumAtomLevel(),
count :: infinity | pos_integer(),
format_string :: string(),
timeout :: infinity | pos_integer(),
@ -79,11 +79,11 @@
%% API
%% @doc installs a lager trace handler into the target process (using sys:install) at the specified level.
-spec install_trace(pid(), rumLevel()) -> ok.
-spec install_trace(pid(), rumAtomLevel()) -> ok.
install_trace(Pid, Level) ->
install_trace(Pid, Level, []).
-spec install_trace(pid(), rumLevel(), [{count, infinity | pos_integer()} | {format_string, string()} | {timeout, timeout()}]) -> ok.
-spec install_trace(pid(), rumAtomLevel(), [{count, infinity | pos_integer()} | {format_string, string()} | {timeout, timeout()}]) -> ok.
install_trace(Pid, Level, Options) ->
sys:install(Pid, {fun ?MODULE:trace_func/3, trace_state(Pid, Level, Options)}).
@ -134,7 +134,7 @@ md(_) ->
erlang:error(badarg).
-spec dispatch_log(atom(), rumLevel(), list(), string(), list() | none, pos_integer(), safe | unsafe) -> ok | {error, lager_not_running} | {error, {sink_not_configured, atom()}}.
-spec dispatch_log(atom(), rumAtomLevel(), 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 lager_transform (lines 173-216)
dispatch_log(Sink, Severity, Metadata, Format, Args, Size, Safety) when is_atom(Severity) ->
@ -215,14 +215,14 @@ do_log(Severity, Metadata, Format, Args, Size, SeverityAsInt, LevelThreshold, Tr
%% along with a Sink param??
%% @doc Manually log a message into lager without using the parse transform.
-spec log(rumLevel(), pid() | atom() | [tuple(), ...], list()) -> ok | {error, lager_not_running}.
-spec log(rumAtomLevel(), pid() | atom() | [tuple(), ...], list()) -> ok | {error, lager_not_running}.
log(Level, Pid, Message) when is_pid(Pid); is_atom(Pid) ->
dispatch_log(Level, [{pid, Pid}], Message, [], ?RumDefTruncation);
log(Level, Metadata, Message) when is_list(Metadata) ->
dispatch_log(Level, Metadata, Message, [], ?RumDefTruncation).
%% @doc Manually log a message into lager without using the parse transform.
-spec log(rumLevel(), pid() | atom() | [tuple(), ...], string(), list()) -> ok | {error, lager_not_running}.
-spec log(rumAtomLevel(), pid() | atom() | [tuple(), ...], string(), list()) -> ok | {error, lager_not_running}.
log(Level, Pid, Format, Args) when is_pid(Pid); is_atom(Pid) ->
dispatch_log(Level, [{pid, Pid}], Format, Args, ?RumDefTruncation);
log(Level, Metadata, Format, Args) when is_list(Metadata) ->
@ -233,7 +233,7 @@ log_unsafe(Level, Metadata, Format, Args) when is_list(Metadata) ->
%% @doc Manually log a message into lager without using the parse transform.
-spec log(atom(), rumLevel(), pid() | atom() | [tuple(), ...], string(), list()) -> ok | {error, lager_not_running}.
-spec log(atom(), rumAtomLevel(), pid() | atom() | [tuple(), ...], string(), list()) -> ok | {error, lager_not_running}.
log(Sink, Level, Pid, Format, Args) when is_pid(Pid); is_atom(Pid) ->
dispatch_log(Sink, Level, [{pid, Pid}], Format, Args, ?RumDefTruncation, safe);
log(Sink, Level, Metadata, Format, Args) when is_list(Metadata) ->

+ 1
- 1
src/test/lager_common_test_backend.erl 查看文件

@ -15,7 +15,7 @@
%% holds the log messages for retreival on terminate
-record(state, {
level :: integer(),
level :: rumMaskLevel(),
formatter :: atom(),
format_config :: any(),
mWriteLog = [] :: list()}).

+ 4
- 4
src/utils/rumMsg.erl 查看文件

@ -15,13 +15,13 @@
-export_type([rumMsg/0]).
%% create with provided timestamp, handy for testing mostly
-spec new(list(), erlang:timestamp(), rumLevel(), [tuple()], list()) -> rumMsg().
-spec new(list(), erlang:timestamp(), rumAtomLevel(), [tuple()], list()) -> rumMsg().
new(Msg, MsTick, Severity, Metadata, Destinations) ->
TimeBinStr = rumUtil:msToBinStr(MsTick),
#rumMsg{message = Msg, datetime = TimeBinStr, timestamp = MsTick, severity = Severity,
metadata = Metadata, destinations = Destinations}.
-spec new(list(), rumLevel(), [tuple()], list()) -> rumMsg().
-spec new(list(), rumAtomLevel(), [tuple()], list()) -> rumMsg().
new(Msg, Severity, Metadata, Destinations) ->
NowMs = rumUtil:nowMs(),
new(Msg, NowMs, Severity, Metadata, Destinations).
@ -38,11 +38,11 @@ timestamp(Msg) ->
datetime(Msg) ->
Msg#rumMsg.datetime.
-spec severity(rumMsg()) -> rumLevel().
-spec severity(rumMsg()) -> rumAtomLevel().
severity(Msg) ->
Msg#rumMsg.severity.
-spec severity_as_int(rumMsg()) -> rumLevelNum().
-spec severity_as_int(rumMsg()) -> rumMaskLevel().
severity_as_int(Msg) ->
rumUtil:levelToNum(Msg#rumMsg.severity).

+ 5
- 5
src/utils/rumUtil.erl 查看文件

@ -86,12 +86,13 @@ configToMask(Conf) ->
Levels = atomCfgToLevels(Conf),
levelsToMask(Levels, 0).
-spec levelsToMask([rumAtomLevel()], rumMaskLevel()) -> rumMaskLevel().
levelsToMask([], Acc) ->
Acc;
levelsToMask([Level | Left], Acc) ->
levelsToMask(Left, levelToNum(Level) bor Acc).
-spec maskToLevels(non_neg_integer()) -> [rumLevel()].
-spec maskToLevels(rumMaskLevel()) -> [rumAtomLevel()].
maskToLevels(Mask) ->
maskToLevels(?RumLevels, Mask, []).
@ -105,7 +106,7 @@ maskToLevels([Level | Levels], Mask, Acc) ->
maskToLevels(Levels, Mask, Acc)
end.
-spec atomCfgToLevels(atom()) -> [rumLevel()].
-spec atomCfgToLevels(atom()) -> [rumAtomLevel()].
atomCfgToLevels(Cfg) ->
binCfgToLevels(atom_to_binary(Cfg, utf8)).
@ -475,7 +476,7 @@ check_trace(Attrs, {Filter, _Level, Dest}) when is_tuple(Filter) ->
[]
end.
-spec isLoggAble(rumMsg:rumMsg(), non_neg_integer(), term()) -> boolean().
-spec isLoggAble(rumMsg:rumMsg(), rumMaskLevel(), term()) -> boolean().
isLoggAble(Msg, Mask, MyName) ->
(rumMsg:severity_as_int(Msg) band Mask) /= 0 orelse lists:member(MyName, rumMsg:destinations(Msg)).
@ -523,8 +524,7 @@ check_hwm(Shaper = #rumShaper{filter = Filter}, Event) ->
check_hwm(Shaper)
end.
%% Log rate limit, i.e. high water mark for incoming messages
%% S i.e.
check_hwm(Shaper = #rumShaper{hwm = undefined}) ->
{true, 0, Shaper};
check_hwm(Shaper = #rumShaper{mps = Mps, hwm = Hwm, lastTime = Last}) when Mps < Hwm ->

Loading…
取消
儲存