Skip to content

Commit ac878ac

Browse files
authored
Merge pull request #18 from OpenRiak/nhse-o34-upstream.pr483
Switch to using domain filtering not log_type (martinsumner#483)
2 parents 2a2795a + c733bf7 commit ac878ac

18 files changed

+345
-292
lines changed

include/leveled.hrl

Lines changed: 88 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
-include_lib("kernel/include/logger.hrl").
2+
13
%%%============================================================================
24
%%% File paths
35
%%%============================================================================
@@ -81,11 +83,96 @@
8183
-define(EQC_TIME_BUDGET, 120).
8284

8385
%%%============================================================================
84-
%%% Helper Function
86+
%%% Helper Functions
8587
%%%============================================================================
8688

8789
-define(IS_DEF(Attribute), Attribute =/= undefined).
8890

91+
-define(LOG_LOCATION, #{
92+
mfa => {?MODULE, ?FUNCTION_NAME, ?FUNCTION_ARITY},
93+
line => ?LINE,
94+
file => ?FILE
95+
}).
96+
97+
-define(STD_LOG(LogRef, Subs),
98+
?STD_LOG_INT(
99+
leveled_log:get_loglevel(LogRef),
100+
LogRef,
101+
Subs,
102+
leveled_log:get_opts()
103+
)
104+
).
105+
106+
%% Erlang apply is used because a variable list of arguments is provided
107+
-define(STD_LOG_INT(LogLevel, LogRef, Subs, LogOpts),
108+
case
109+
logger:allow(LogLevel, ?MODULE) andalso
110+
leveled_log:should_i_log(LogLevel, LogRef, LogOpts)
111+
of
112+
true ->
113+
erlang:apply(
114+
logger,
115+
macro_log,
116+
[
117+
?LOG_LOCATION
118+
| leveled_log:log(LogLevel, LogRef, LogOpts, Subs)
119+
]
120+
);
121+
false ->
122+
ok
123+
end
124+
).
125+
126+
-define(RND_LOG(LogRef, Subs, StartTime, RandomProb),
127+
case rand:uniform() < RandomProb of
128+
true ->
129+
?TMR_LOG_INT(
130+
leveled_log:get_loglevel(LogRef),
131+
LogRef,
132+
Subs,
133+
leveled_log:get_opts(),
134+
StartTime
135+
);
136+
false ->
137+
ok
138+
end
139+
).
140+
141+
-define(TMR_LOG(LogRef, Subs, StartTime),
142+
?TMR_LOG_INT(
143+
leveled_log:get_loglevel(LogRef),
144+
LogRef,
145+
Subs,
146+
leveled_log:get_opts(),
147+
StartTime
148+
)
149+
).
150+
151+
-define(TMR_LOG_INT(LogLevel, LogRef, Subs, LogOpts, StartTime),
152+
case
153+
logger:allow(LogLevel, ?MODULE) andalso
154+
leveled_log:should_i_log(LogLevel, LogRef, LogOpts)
155+
of
156+
true ->
157+
erlang:apply(
158+
logger,
159+
macro_log,
160+
[
161+
?LOG_LOCATION
162+
| leveled_log:log_timer(
163+
LogLevel,
164+
LogRef,
165+
LogOpts,
166+
Subs,
167+
StartTime
168+
)
169+
]
170+
);
171+
false ->
172+
ok
173+
end
174+
).
175+
89176
-if(?OTP_RELEASE < 26).
90177
-type dynamic() :: any().
91178
-endif.

src/leveled_bookie.erl

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,7 @@ book_indexfold(Pid, Bucket, FoldAccT, Range, TermHandling) ->
787787
% future release this code branch may be removed, and such queries may
788788
% instead return `error`. For now null is assumed to be lower than any
789789
% key
790-
leveled_log:log(b0019, [Bucket]),
790+
?STD_LOG(b0019, [Bucket]),
791791
book_indexfold(Pid, {Bucket, null}, FoldAccT, Range, TermHandling).
792792

793793
-type query() ::
@@ -1377,7 +1377,7 @@ init([Opts]) ->
13771377
% and performance may be unpredictable
13781378
case CacheRatio > 32 of
13791379
true ->
1380-
leveled_log:log(b0020, [PCLMaxSize, ConfiguredCacheSize]);
1380+
?STD_LOG(b0020, [PCLMaxSize, ConfiguredCacheSize]);
13811381
false ->
13821382
ok
13831383
end,
@@ -1406,7 +1406,7 @@ init([Opts]) ->
14061406
{Inker, Penciller} = startup(InkerOpts, PencillerOpts0),
14071407

14081408
NewETS = ets:new(mem, [ordered_set]),
1409-
leveled_log:log(b0001, [Inker, Penciller]),
1409+
?STD_LOG(b0001, [Inker, Penciller]),
14101410
{ok, #state{
14111411
cache_size = CacheSize,
14121412
cache_multiple = MaxCacheMultiple,
@@ -1424,7 +1424,7 @@ init([Opts]) ->
14241424
BookieMonitor = erlang:monitor(process, Bookie),
14251425
NewETS = ets:new(mem, [ordered_set]),
14261426
{HeadOnly, Lookup} = leveled_bookie:book_headstatus(Bookie),
1427-
leveled_log:log(b0002, [Inker, Penciller]),
1427+
?STD_LOG(b0002, [Inker, Penciller]),
14281428
{ok, #state{
14291429
penciller = Penciller,
14301430
inker = Inker,
@@ -1729,7 +1729,7 @@ handle_call(
17291729
handle_call(destroy, _From, State = #state{is_snapshot = Snp}) when
17301730
Snp == false
17311731
->
1732-
leveled_log:log(b0011, []),
1732+
?STD_LOG(b0011, []),
17331733
{ok, InkPathList} = leveled_inker:ink_doom(State#state.inker),
17341734
{ok, PCLPathList} = leveled_penciller:pcl_doom(State#state.penciller),
17351735
leveled_monitor:monitor_close(element(1, State#state.monitor)),
@@ -1794,13 +1794,13 @@ handle_info(
17941794
{'DOWN', BookieMonRef, process, BookiePid, Info},
17951795
State = #state{bookie_monref = BookieMonRef, is_snapshot = true}
17961796
) ->
1797-
leveled_log:log(b0004, [BookiePid, Info]),
1797+
?STD_LOG(b0004, [BookiePid, Info]),
17981798
{stop, normal, State};
17991799
handle_info(_Info, State) ->
18001800
{noreply, State}.
18011801

18021802
terminate(Reason, _State) ->
1803-
leveled_log:log(b0003, [Reason]).
1803+
?STD_LOG(b0003, [Reason]).
18041804

18051805
code_change(_OldVsn, State, _Extra) ->
18061806
{ok, State}.
@@ -1854,7 +1854,7 @@ push_to_penciller(Penciller, LoadItemList, LedgerCache, ReloadStrategy) ->
18541854
),
18551855
case length(UpdLedgerCache#ledger_cache.load_queue) of
18561856
N when N > ?LOADING_BATCH ->
1857-
leveled_log:log(b0006, [UpdLedgerCache#ledger_cache.max_sqn]),
1857+
?STD_LOG(b0006, [UpdLedgerCache#ledger_cache.max_sqn]),
18581858
ok =
18591859
push_to_penciller_loop(
18601860
Penciller, loadqueue_ledgercache(UpdLedgerCache)
@@ -1990,7 +1990,7 @@ startup(InkerOpts, PencillerOpts) ->
19901990
{ok, Inker} = leveled_inker:ink_start(InkerOpts),
19911991
{ok, Penciller} = leveled_penciller:pcl_start(PencillerOpts),
19921992
LedgerSQN = leveled_penciller:pcl_getstartupsequencenumber(Penciller),
1993-
leveled_log:log(b0005, [LedgerSQN]),
1993+
?STD_LOG(b0005, [LedgerSQN]),
19941994
ReloadStrategy = InkerOpts#inker_options.reload_strategy,
19951995
LoadFun = get_loadfun(),
19961996
BatchFun =
@@ -2001,7 +2001,7 @@ startup(InkerOpts, PencillerOpts) ->
20012001
end,
20022002
InitAccFun =
20032003
fun(FN, CurrentMinSQN) ->
2004-
leveled_log:log(i0014, [FN, CurrentMinSQN]),
2004+
?STD_LOG(i0014, [FN, CurrentMinSQN]),
20052005
[]
20062006
end,
20072007
FinalAcc =
@@ -2525,7 +2525,7 @@ return_ledger_keyrange(Tag, Bucket, KeyRange) ->
25252525
maybe_longrunning(SW, Aspect) ->
25262526
case timer:now_diff(os:timestamp(), SW) of
25272527
N when N > ?LONG_RUNNING ->
2528-
leveled_log:log(b0013, [N, Aspect]);
2528+
?STD_LOG(b0013, [N, Aspect]);
25292529
_ ->
25302530
ok
25312531
end.

src/leveled_cdb.erl

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -476,10 +476,10 @@ callback_mode() ->
476476

477477
starting({call, From}, {open_writer, Filename}, State) ->
478478
leveled_log:save(State#state.log_options),
479-
leveled_log:log(cdb01, [Filename]),
479+
?STD_LOG(cdb01, [Filename]),
480480
{LastPosition, HashTree, LastKey} = open_active_file(Filename),
481481
{WriteOps, UpdStrategy} = set_writeops(State#state.sync_strategy),
482-
leveled_log:log(cdb13, [WriteOps]),
482+
?STD_LOG(cdb13, [WriteOps]),
483483
{ok, Handle} = file:open(Filename, WriteOps),
484484
State0 = State#state{
485485
handle = Handle,
@@ -493,7 +493,7 @@ starting({call, From}, {open_writer, Filename}, State) ->
493493
{next_state, writer, State0, [{reply, From, ok}, hibernate]};
494494
starting({call, From}, {open_reader, Filename}, State) ->
495495
leveled_log:save(State#state.log_options),
496-
leveled_log:log(cdb02, [Filename]),
496+
?STD_LOG(cdb02, [Filename]),
497497
{Handle, Index, LastKey} = open_for_readonly(Filename, false),
498498
State0 = State#state{
499499
handle = Handle,
@@ -504,7 +504,7 @@ starting({call, From}, {open_reader, Filename}, State) ->
504504
{next_state, reader, State0, [{reply, From, ok}, hibernate]};
505505
starting({call, From}, {open_reader, Filename, LastKey}, State) ->
506506
leveled_log:save(State#state.log_options),
507-
leveled_log:log(cdb02, [Filename]),
507+
?STD_LOG(cdb02, [Filename]),
508508
{Handle, Index, LastKey} = open_for_readonly(Filename, LastKey),
509509
State0 = State#state{
510510
handle = Handle,
@@ -706,7 +706,7 @@ rolling(
706706
ok = write_top_index_table(Handle, BasePos, IndexList),
707707
file:close(Handle),
708708
ok = rename_for_read(FN, NewName),
709-
leveled_log:log(cdb03, [NewName]),
709+
?STD_LOG(cdb03, [NewName]),
710710
ets:delete(State#state.hashtree),
711711
{NewHandle, Index, LastKey} =
712712
open_for_readonly(NewName, State#state.last_key),
@@ -720,7 +720,7 @@ rolling(
720720
true ->
721721
{next_state, delete_pending, State0, [{reply, From, ok}]};
722722
false ->
723-
leveled_log:log_timer(cdb18, [], SW),
723+
?TMR_LOG(cdb18, [], SW),
724724
{next_state, reader, State0, [{reply, From, ok}, hibernate]}
725725
end;
726726
rolling({call, From}, check_hashtable, _State) ->
@@ -819,7 +819,7 @@ reader(
819819
) when
820820
?IS_DEF(FN), ?IS_DEF(IO)
821821
->
822-
leveled_log:log(cdb05, [FN, reader, cdb_ccomplete]),
822+
?STD_LOG(cdb05, [FN, reader, cdb_ccomplete]),
823823
ok = file:close(IO),
824824
{stop_and_reply, normal, [{reply, From, {ok, FN}}], State#state{
825825
handle = undefined
@@ -870,7 +870,7 @@ delete_pending(
870870
) when
871871
?IS_DEF(FN), ?IS_DEF(IO)
872872
->
873-
leveled_log:log(cdb05, [FN, delete_pending, cdb_close]),
873+
?STD_LOG(cdb05, [FN, delete_pending, cdb_close]),
874874
close_pendingdelete(IO, FN, State#state.waste_path),
875875
{stop_and_reply, normal, [{reply, From, ok}]};
876876
delete_pending({call, From}, Event, State) ->
@@ -880,15 +880,15 @@ delete_pending(
880880
) when
881881
?IS_DEF(FN), ?IS_DEF(IO)
882882
->
883-
leveled_log:log(cdb04, [FN, State#state.delete_point]),
883+
?STD_LOG(cdb04, [FN, State#state.delete_point]),
884884
close_pendingdelete(IO, FN, State#state.waste_path),
885885
{stop, normal};
886886
delete_pending(
887887
cast, destroy, State = #state{handle = IO, filename = FN}
888888
) when
889889
?IS_DEF(FN), ?IS_DEF(IO)
890890
->
891-
leveled_log:log(cdb05, [FN, delete_pending, destroy]),
891+
?STD_LOG(cdb05, [FN, delete_pending, destroy]),
892892
close_pendingdelete(IO, FN, State#state.waste_path),
893893
{stop, normal};
894894
delete_pending(
@@ -906,7 +906,7 @@ delete_pending(
906906
),
907907
{keep_state_and_data, [?DELETE_TIMEOUT]};
908908
false ->
909-
leveled_log:log(cdb04, [FN, ManSQN]),
909+
?STD_LOG(cdb04, [FN, ManSQN]),
910910
close_pendingdelete(IO, FN, State#state.waste_path),
911911
{stop, normal}
912912
end.
@@ -1058,7 +1058,7 @@ close_pendingdelete(Handle, Filename, WasteFP) ->
10581058
false ->
10591059
% This may happen when there has been a destroy while files are
10601060
% still pending deletion
1061-
leveled_log:log(cdb21, [Filename])
1061+
?STD_LOG(cdb21, [Filename])
10621062
end.
10631063

10641064
-spec set_writeops(sync | riak_sync | none) ->
@@ -1101,7 +1101,7 @@ open_active_file(FileName) when is_list(FileName) ->
11011101
{?BASE_POSITION, 0} ->
11021102
ok;
11031103
_ ->
1104-
leveled_log:log(cdb06, [LastPosition, EndPosition])
1104+
?STD_LOG(cdb06, [LastPosition, EndPosition])
11051105
end,
11061106
{ok, _LastPosition} = file:position(Handle, LastPosition),
11071107
ok = file:truncate(Handle),
@@ -1280,7 +1280,7 @@ hashtable_calc(HashTree, StartPos) ->
12801280
Seq = lists:seq(0, 255),
12811281
SWC = os:timestamp(),
12821282
{IndexList, HashTreeBin} = write_hash_tables(Seq, HashTree, StartPos),
1283-
leveled_log:log_timer(cdb07, [], SWC),
1283+
?TMR_LOG(cdb07, [], SWC),
12841284
{IndexList, HashTreeBin}.
12851285

12861286
%%%%%%%%%%%%%%%%%%%%
@@ -1292,7 +1292,7 @@ determine_new_filename(Filename) ->
12921292

12931293
rename_for_read(Filename, NewName) ->
12941294
%% Rename file
1295-
leveled_log:log(cdb08, [Filename, NewName, filelib:is_file(NewName)]),
1295+
?STD_LOG(cdb08, [Filename, NewName, filelib:is_file(NewName)]),
12961296
file:rename(Filename, NewName).
12971297

12981298
-spec open_for_readonly(string(), term()) ->
@@ -1487,7 +1487,7 @@ scan_over_file(Handle, Position, FilterFun, Output, LastKey) ->
14871487
% Not interesting that we've nothing to read at base
14881488
ok;
14891489
_ ->
1490-
leveled_log:log(cdb09, [Position])
1490+
?STD_LOG(cdb09, [Position])
14911491
end,
14921492
% Bring file back to that position
14931493
{ok, Position} = file:position(Handle, {bof, Position}),
@@ -1590,7 +1590,7 @@ safe_read_next(Handle, Length, ReadType) ->
15901590
end
15911591
catch
15921592
error:ReadError ->
1593-
leveled_log:log(cdb20, [ReadError, Length]),
1593+
?STD_LOG(cdb20, [ReadError, Length]),
15941594
false
15951595
end.
15961596

@@ -1604,11 +1604,11 @@ crccheck(<<CRC:32/integer, Value/binary>>, KeyBin) when is_binary(KeyBin) ->
16041604
CRC ->
16051605
Value;
16061606
_ ->
1607-
leveled_log:log(cdb10, ["mismatch"]),
1607+
?STD_LOG(cdb10, ["mismatch"]),
16081608
false
16091609
end;
16101610
crccheck(_V, _KB) ->
1611-
leveled_log:log(cdb10, ["size"]),
1611+
?STD_LOG(cdb10, ["size"]),
16121612
false.
16131613

16141614
-spec calc_crc(binary(), binary()) -> integer().
@@ -1710,7 +1710,7 @@ search_hash_table(
17101710
end,
17111711
case KV of
17121712
missing ->
1713-
leveled_log:log(cdb15, [Hash]),
1713+
?STD_LOG(cdb15, [Hash]),
17141714
search_hash_table(
17151715
Handle,
17161716
{FirstHashPosition, Slot, CycleCount + 1, TotalSlots},
@@ -1765,7 +1765,7 @@ perform_write_hash_tables(Handle, HashTreeBin, StartPos) ->
17651765
ok = file:write(Handle, HashTreeBin),
17661766
{ok, EndPos} = file:position(Handle, cur),
17671767
ok = file:advise(Handle, StartPos, EndPos - StartPos, will_need),
1768-
leveled_log:log_timer(cdb12, [], SWW),
1768+
?TMR_LOG(cdb12, [], SWW),
17691769
ok.
17701770

17711771
%% Write the top most 255 doubleword entries. First word is the
@@ -1952,7 +1952,7 @@ write_hash_tables(
19521952
HT_BinList,
19531953
{T1, T2, T3}
19541954
) ->
1955-
leveled_log:log(cdb14, [T1, T2, T3]),
1955+
?STD_LOG(cdb14, [T1, T2, T3]),
19561956
IL = lists:reverse(IndexList),
19571957
{IL, list_to_binary(lists:reverse(HT_BinList))};
19581958
write_hash_tables(

src/leveled_codec.erl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ get_tagstrategy(Tag, Strategy) ->
590590
%% running in head_only mode - so don't warn
591591
retain;
592592
false ->
593-
leveled_log:log(ic012, [Tag, Strategy]),
593+
?STD_LOG(ic012, [Tag, Strategy]),
594594
retain
595595
end.
596596

0 commit comments

Comments
 (0)