From afbf918f2cf0ec608190559a9b91be42046a30bc Mon Sep 17 00:00:00 2001 From: martinsumner Date: Thu, 1 Jun 2017 21:37:23 +0100 Subject: [PATCH 1/3] Change from using array type Won't compile in OTP16 --- src/leveled_pmem.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/leveled_pmem.erl b/src/leveled_pmem.erl index 0d4c7cf..a36d4ac 100644 --- a/src/leveled_pmem.erl +++ b/src/leveled_pmem.erl @@ -43,7 +43,8 @@ -include_lib("eunit/include/eunit.hrl"). --type index_array() :: array:array(). +% -type index_array() :: array:array(). +-type index_array() :: any(). % To live with OTP16 %%%============================================================================ %%% API From 32612dfe4aad520e2fa494145cc612cf12c55a31 Mon Sep 17 00:00:00 2001 From: martinsumner Date: Thu, 1 Jun 2017 21:39:01 +0100 Subject: [PATCH 2/3] Yet another array type OTP16 issue --- src/leveled_penciller.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/leveled_penciller.erl b/src/leveled_penciller.erl index 5724f88..bfb2bff 100644 --- a/src/leveled_penciller.erl +++ b/src/leveled_penciller.erl @@ -245,7 +245,8 @@ -type penciller_options() :: #penciller_options{}. -type bookies_memory() :: {tuple()|empty_cache, - array:array()|empty_array, + % array:array()|empty_array, + any()|empty_array, % Issue of type compatability with OTP16 integer()|infinity, integer()}. -type pcl_state() :: #state{}. From 569b498727ad8e0947d4ccd7fd05c4c0c401cf32 Mon Sep 17 00:00:00 2001 From: martinsumner Date: Thu, 1 Jun 2017 22:03:51 +0100 Subject: [PATCH 3/3] Resolve dialyzer warnings Botched switch to leveled_log in list - so reoslved dialyzer warnings --- src/leveled_log.erl | 64 +++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/src/leveled_log.erl b/src/leveled_log.erl index 258e35b..aa7ef85 100644 --- a/src/leveled_log.erl +++ b/src/leveled_log.erl @@ -327,34 +327,48 @@ log(LogReference, Subs) -> - {LogLevel, LogText} = lists:keyfind(LogReference, 1, ?LOGBASE), - case lists:member(LogLevel, ?LOG_LEVEL) of - true -> - io:format(format_time() - ++ " " ++ LogReference ++ " ~w " - ++ LogText ++ "~n", - [self()|Subs]); + log(LogReference, Subs, ?LOG_LEVEL). + +log(LogRef, Subs, SupportedLogLevels) -> + case lists:keyfind(LogRef, 1, ?LOGBASE) of + {LogRef, {LogLevel, LogText}} -> + case lists:member(LogLevel, SupportedLogLevels) of + true -> + io:format(format_time() + ++ " " ++ LogRef ++ " ~w " + ++ LogText ++ "~n", + [self()|Subs]); + false -> + ok + end; false -> ok end. log_timer(LogReference, Subs, StartTime) -> - {LogLevel, LogText} = lists:keyfind(LogReference, 1, ?LOGBASE), - case lists:member(LogLevel, ?LOG_LEVEL) of - true -> - MicroS = timer:now_diff(os:timestamp(), StartTime), - {Unit, Time} = case MicroS of - MicroS when MicroS < 1000 -> - {"microsec", MicroS}; - MicroS -> - {"ms", MicroS div 1000} - end, - io:format(format_time() - ++ " " ++ LogReference ++ " ~w " - ++ LogText - ++ " with time taken ~w " ++ Unit ++ "~n", - [self()|Subs] ++ [Time]); + log_timer(LogReference, Subs, StartTime, ?LOG_LEVEL). + +log_timer(LogRef, Subs, StartTime, SupportedLogLevels) -> + case lists:keyfind(LogRef, 1, ?LOGBASE) of + {LogRef, {LogLevel, LogText}} -> + case lists:member(LogLevel, SupportedLogLevels) of + true -> + MicroS = timer:now_diff(os:timestamp(), StartTime), + {Unit, Time} = case MicroS of + MicroS when MicroS < 1000 -> + {"microsec", MicroS}; + MicroS -> + {"ms", MicroS div 1000} + end, + io:format(format_time() + ++ " " ++ LogRef ++ " ~w " + ++ LogText + ++ " with time taken ~w " ++ Unit ++ "~n", + [self()|Subs] ++ [Time]); + false -> + ok + end; false -> ok end. @@ -577,4 +591,10 @@ head_timing_test() -> ?assertMatch(3, lists:nth(1, dict:fetch(found_2, D))), ?assertMatch(1, lists:nth(1, dict:fetch(found_lower, D))). +log_warn_test() -> + ok = log("G0001", [], [warn, error]), + ok = log("G8888", [], [info, warn, error]), + ok = log_timer("G0001", [], os:timestamp(), [warn, error]), + ok = log_timer("G8888", [], os:timestamp(), [info, warn, error]). + -endif. \ No newline at end of file