Add database_id to options

So that this can be recorded in logs
This commit is contained in:
Martin Sumner 2019-06-13 14:58:32 +01:00
parent c3a4f5118d
commit 876a023db1
3 changed files with 37 additions and 12 deletions

View file

@ -140,6 +140,7 @@
{compression_point, ?COMPRESSION_POINT}, {compression_point, ?COMPRESSION_POINT},
{log_level, ?LOG_LEVEL}, {log_level, ?LOG_LEVEL},
{forced_logs, []}, {forced_logs, []},
{database_id, 0},
{override_functions, []}, {override_functions, []},
{snapshot_timeout_short, ?SNAPTIMEOUT_SHORT}, {snapshot_timeout_short, ?SNAPTIMEOUT_SHORT},
{snapshot_timeout_long, ?SNAPTIMEOUT_LONG}]). {snapshot_timeout_long, ?SNAPTIMEOUT_LONG}]).
@ -339,6 +340,8 @@
% "P0032", "SST12", "CDB19", "SST13", "I0019"]} % "P0032", "SST12", "CDB19", "SST13", "I0019"]}
% Will log all timing points even when log_level is not set to % Will log all timing points even when log_level is not set to
% support info % support info
{database_id, non_neg_integer()} |
% Integer database ID to be used in logs
{override_functions, list(leveled_head:appdefinable_function_tuple())} | {override_functions, list(leveled_head:appdefinable_function_tuple())} |
% Provide a list of override functions that will be used for % Provide a list of override functions that will be used for
% user-defined tags % user-defined tags
@ -1131,6 +1134,8 @@ init([Opts]) ->
leveled_log:set_loglevel(LogLevel), leveled_log:set_loglevel(LogLevel),
ForcedLogs = proplists:get_value(forced_logs, Opts), ForcedLogs = proplists:get_value(forced_logs, Opts),
leveled_log:add_forcedlogs(ForcedLogs), leveled_log:add_forcedlogs(ForcedLogs),
DatabaseID = proplists:get_value(database_id, Opts),
leveled_log:set_databaseid(DatabaseID),
{InkerOpts, PencillerOpts} = set_options(Opts), {InkerOpts, PencillerOpts} = set_options(Opts),

View file

@ -12,6 +12,7 @@
log_randomtimer/4]). log_randomtimer/4]).
-export([set_loglevel/1, -export([set_loglevel/1,
set_databaseid/1,
add_forcedlogs/1, add_forcedlogs/1,
remove_forcedlogs/1, remove_forcedlogs/1,
get_opts/0, get_opts/0,
@ -20,7 +21,8 @@
-record(log_options, {log_level = info :: log_level(), -record(log_options, {log_level = info :: log_level(),
forced_logs = [] :: [string()]}). forced_logs = [] :: [string()],
database_id = 0 :: non_neg_integer()}).
-type log_level() :: debug | info | warn | error | critical. -type log_level() :: debug | info | warn | error | critical.
-type log_options() :: #log_options{}. -type log_options() :: #log_options{}.
@ -416,6 +418,14 @@ set_loglevel(LogLevel) when is_atom(LogLevel) ->
UpdLO = LO#log_options{log_level = LogLevel}, UpdLO = LO#log_options{log_level = LogLevel},
save(UpdLO). save(UpdLO).
-spec set_databaseid(non_neg_integer()) -> ok.
%% @doc
%% Set the Database ID for this PID
set_databaseid(DBid) when is_integer(DBid) ->
LO = get_opts(),
UpdLO = LO#log_options{database_id = DBid},
save(UpdLO).
-spec add_forcedlogs(list(string())) -> ok. -spec add_forcedlogs(list(string())) -> ok.
%% @doc %% @doc
%% Add a forced log to the list of forced logs. this will cause the log of this %% Add a forced log to the list of forced logs. this will cause the log of this
@ -474,13 +484,16 @@ log(LogReference, Subs) ->
log(LogRef, Subs, SupportedLogLevels) -> log(LogRef, Subs, SupportedLogLevels) ->
case lists:keyfind(LogRef, 1, ?LOGBASE) of case lists:keyfind(LogRef, 1, ?LOGBASE) of
{LogRef, {LogLevel, LogText}} -> {LogRef, {LogLevel, LogText}} ->
case should_i_log(LogLevel, SupportedLogLevels, LogRef) of LogOpts = get_opts(),
case should_i_log(LogLevel, SupportedLogLevels, LogRef, LogOpts) of
true -> true ->
DBid = LogOpts#log_options.database_id,
io:format(format_time() ++ " " io:format(format_time() ++ " "
++ atom_to_list(LogLevel) ++ " " ++ " log_level="
++ LogRef ++ " ~w " ++ atom_to_list(LogLevel) ++ " log_ref="
++ LogRef ++ " db_id=~w pid=~w "
++ LogText ++ "~n", ++ LogText ++ "~n",
[self()|Subs]); [DBid|[self()|Subs]]);
false -> false ->
ok ok
end; end;
@ -489,7 +502,10 @@ log(LogRef, Subs, SupportedLogLevels) ->
end. end.
should_i_log(LogLevel, Levels, LogRef) -> should_i_log(LogLevel, Levels, LogRef) ->
#log_options{log_level = CurLevel, forced_logs = ForcedLogs} = get_opts(), should_i_log(LogLevel, Levels, LogRef, get_opts()).
should_i_log(LogLevel, Levels, LogRef, LogOpts) ->
#log_options{log_level = CurLevel, forced_logs = ForcedLogs} = LogOpts,
case lists:member(LogRef, ForcedLogs) of case lists:member(LogRef, ForcedLogs) of
true -> true ->
true; true;
@ -508,10 +524,11 @@ is_active_level([_|T], C, L) -> is_active_level(T, C, L).
log_timer(LogReference, Subs, StartTime) -> log_timer(LogReference, Subs, StartTime) ->
log_timer(LogReference, Subs, StartTime, ?LOG_LEVELS). log_timer(LogReference, Subs, StartTime, ?LOG_LEVELS).
log_timer(LogRef, Subs, StartTime, SupportedLogLevels) -> log_timer(LogRef, Subs, StartTime, SupportedLevels) ->
case lists:keyfind(LogRef, 1, ?LOGBASE) of case lists:keyfind(LogRef, 1, ?LOGBASE) of
{LogRef, {LogLevel, LogText}} -> {LogRef, {LogLevel, LogText}} ->
case should_i_log(LogLevel, SupportedLogLevels, LogRef) of LogOpts = get_opts(),
case should_i_log(LogLevel, SupportedLevels, LogRef, LogOpts) of
true -> true ->
DurationText = DurationText =
case timer:now_diff(os:timestamp(), StartTime) of case timer:now_diff(os:timestamp(), StartTime) of
@ -522,12 +539,14 @@ log_timer(LogRef, Subs, StartTime, SupportedLogLevels) ->
US -> US ->
" with us_duration=" ++ integer_to_list(US) " with us_duration=" ++ integer_to_list(US)
end, end,
DBid = LogOpts#log_options.database_id,
io:format(format_time() ++ " " io:format(format_time() ++ " "
++ atom_to_list(LogLevel) ++ " " ++ " log_level="
++ LogRef ++ " ~w " ++ atom_to_list(LogLevel) ++ " log_ref="
++ LogRef ++ " db_id=~w pid=~w "
++ LogText ++ LogText
++ DurationText ++ "~n", ++ DurationText ++ "~n",
[self()|Subs]); [DBid|[self()|Subs]]);
false -> false ->
ok ok
end; end;

View file

@ -38,7 +38,8 @@ basic_riak_tester(Bucket, KeyCount) ->
StartOpts1 = [{root_path, RootPath}, StartOpts1 = [{root_path, RootPath},
{max_journalsize, 500000000}, {max_journalsize, 500000000},
{max_pencillercachesize, 24000}, {max_pencillercachesize, 24000},
{sync_strategy, testutil:sync_strategy()}], {sync_strategy, testutil:sync_strategy()},
{database_id, 32}],
{ok, Bookie1} = leveled_bookie:book_start(StartOpts1), {ok, Bookie1} = leveled_bookie:book_start(StartOpts1),
IndexGenFun = IndexGenFun =