|
|
@ -3,8 +3,6 @@ |
|
|
|
-include("eRum.hrl"). |
|
|
|
-include_lib("kernel/include/file.hrl"). |
|
|
|
|
|
|
|
-compile(export_all). |
|
|
|
|
|
|
|
-export([ |
|
|
|
levels/0 |
|
|
|
, levelToNum/1 |
|
|
@ -13,11 +11,9 @@ |
|
|
|
, config_to_mask/1 |
|
|
|
, atomCfgToLevels/1 |
|
|
|
, maskToLevels/1 |
|
|
|
, format_time/0 |
|
|
|
, format_time/1 |
|
|
|
, localtime_ms/0 |
|
|
|
, localtime_ms/1 |
|
|
|
, maybe_utc/1 |
|
|
|
, nowMs/0 |
|
|
|
, msToBinStr/0 |
|
|
|
, msToBinStr/1 |
|
|
|
, parse_rotation_date_spec/1 |
|
|
|
, calculate_next_rotation/1 |
|
|
|
, validate_trace/1 |
|
|
@ -129,10 +125,6 @@ binCfgToLevels(<<">", Rest/binary>>) -> |
|
|
|
binCfgToLevels(Rest) -> |
|
|
|
[levelBinToAtom(Rest)]. |
|
|
|
|
|
|
|
binCfgToNum(BinStr) -> |
|
|
|
Level = levelBinToAtom(BinStr), |
|
|
|
dropInWhile(?RumLevels, Level). |
|
|
|
|
|
|
|
dropInWhile([], _Level) -> |
|
|
|
[]; |
|
|
|
dropInWhile([CurLevel | Left] = Rest, Level) -> |
|
|
@ -182,40 +174,34 @@ levelBinToAtom(BinStr) -> |
|
|
|
erlang:error(badarg) |
|
|
|
end. |
|
|
|
|
|
|
|
%% returns localtime with milliseconds included |
|
|
|
localtime_ms() -> |
|
|
|
Now = os:timestamp(), |
|
|
|
localtime_ms(Now). |
|
|
|
nowMs() -> |
|
|
|
erlang:system_time(millisecond). |
|
|
|
|
|
|
|
localtime_ms(Now) -> |
|
|
|
{_, _, Micro} = Now, |
|
|
|
{Date, {Hours, Minutes, Seconds}} = calendar:now_to_local_time(Now), |
|
|
|
{Date, {Hours, Minutes, Seconds, Micro div 1000 rem 1000}}. |
|
|
|
msToBinStr() -> |
|
|
|
msToBinStr(nowMs()). |
|
|
|
|
|
|
|
msToBinStr(MsTick) -> |
|
|
|
ThisSec = MsTick div 1000, |
|
|
|
ThisMs = MsTick rem 1000, |
|
|
|
{{Y, M, D}, {H, Mi, S}} = erlang:universaltime_to_localtime(erlang:posixtime_to_universaltime(ThisSec)), |
|
|
|
<<(integer_to_binary(Y))/binary, "-", (i2b(M))/binary, "-", (i2b(D))/binary, " ", (i2b(H))/binary, ":", (i2b(Mi))/binary, ":", (i2b(S))/binary, ".", (i3b(ThisMs))/binary>>. |
|
|
|
|
|
|
|
maybe_utc({Date, {H, M, S, Ms}}) -> |
|
|
|
case rumStdlib:maybe_utc({Date, {H, M, S}}) of |
|
|
|
{utc, {Date1, {H1, M1, S1}}} -> |
|
|
|
{utc, {Date1, {H1, M1, S1, Ms}}}; |
|
|
|
{n>Date1, {H1, M1, S1}} -> |
|
|
|
{Date1, {H1, M1, S1, Ms}} |
|
|
|
i2b(Num) -> |
|
|
|
if |
|
|
|
Num < 10 -> |
|
|
|
<<"0", (integer_to_binary(Num))/binary>>; |
|
|
|
true -> |
|
|
|
integer_to_binary(Num) |
|
|
|
end. |
|
|
|
|
|
|
|
format_time() -> |
|
|
|
format_time(maybe_utc(localtime_ms())). |
|
|
|
|
|
|
|
format_time({utc, {{Y, M, D}, {H, Mi, S, Ms}}}) -> |
|
|
|
{[integer_to_list(Y), $-, i2l(M), $-, i2l(D)], |
|
|
|
[i2l(H), $:, i2l(Mi), $:, i2l(S), $., i3l(Ms), $ , $U, $T, $C]}; |
|
|
|
format_time({{Y, M, D}, {H, Mi, S, Ms}}) -> |
|
|
|
{[integer_to_list(Y), $-, i2l(M), $-, i2l(D)], |
|
|
|
[i2l(H), $:, i2l(Mi), $:, i2l(S), $., i3l(Ms)]}; |
|
|
|
format_time({utc, {{Y, M, D}, {H, Mi, S}}}) -> |
|
|
|
{[integer_to_list(Y), $-, i2l(M), $-, i2l(D)], |
|
|
|
[i2l(H), $:, i2l(Mi), $:, i2l(S), $ , $U, $T, $C]}; |
|
|
|
format_time({{Y, M, D}, {H, Mi, S}}) -> |
|
|
|
{[integer_to_list(Y), $-, i2l(M), $-, i2l(D)], |
|
|
|
[i2l(H), $:, i2l(Mi), $:, i2l(S)]}. |
|
|
|
i3b(Num) -> |
|
|
|
if Num < 10 -> |
|
|
|
<<"00", (integer_to_binary(Num))/binary>>; |
|
|
|
Num < 100 -> |
|
|
|
<<"0", (integer_to_binary(Num))/binary>>; |
|
|
|
true -> |
|
|
|
integer_to_binary(Num) |
|
|
|
end. |
|
|
|
|
|
|
|
parse_rotation_hour_spec([], Res) -> |
|
|
|
{ok, Res}; |
|
|
@ -491,11 +477,6 @@ is_loggable(Msg, SeverityThreshold, MyName) when is_integer(SeverityThreshold) - |
|
|
|
rumMsg:severity_as_int(Msg) =< SeverityThreshold orelse |
|
|
|
lists:member(MyName, rumMsg:destinations(Msg)). |
|
|
|
|
|
|
|
i2l(I) when I < 10 -> [$0, $0 + I]; |
|
|
|
i2l(I) -> integer_to_list(I). |
|
|
|
i3l(I) when I < 100 -> [$0 | i2l(I)]; |
|
|
|
i3l(I) -> integer_to_list(I). |
|
|
|
|
|
|
|
%% When log_root option is provided, get the real path to a file |
|
|
|
expand_path(RelPath) -> |
|
|
|
case application:get_env(lager, log_root) of |
|
|
@ -803,27 +784,27 @@ format_time_test_() -> |
|
|
|
[ |
|
|
|
?_assertEqual("2012-10-04 11:16:23.002", |
|
|
|
begin |
|
|
|
{D, T} = format_time({{2012, 10, 04}, {11, 16, 23, 2}}), |
|
|
|
{D, T} = msToBinStr({{2012, 10, 04}, {11, 16, 23, 2}}), |
|
|
|
lists:flatten([D, $ , T]) |
|
|
|
end), |
|
|
|
?_assertEqual("2012-10-04 11:16:23.999", |
|
|
|
begin |
|
|
|
{D, T} = format_time({{2012, 10, 04}, {11, 16, 23, 999}}), |
|
|
|
{D, T} = msToBinStr({{2012, 10, 04}, {11, 16, 23, 999}}), |
|
|
|
lists:flatten([D, $ , T]) |
|
|
|
end), |
|
|
|
?_assertEqual("2012-10-04 11:16:23", |
|
|
|
begin |
|
|
|
{D, T} = format_time({{2012, 10, 04}, {11, 16, 23}}), |
|
|
|
{D, T} = msToBinStr({{2012, 10, 04}, {11, 16, 23}}), |
|
|
|
lists:flatten([D, $ , T]) |
|
|
|
end), |
|
|
|
?_assertEqual("2012-10-04 00:16:23.092 UTC", |
|
|
|
begin |
|
|
|
{D, T} = format_time({utc, {{2012, 10, 04}, {0, 16, 23, 92}}}), |
|
|
|
{D, T} = msToBinStr({utc, {{2012, 10, 04}, {0, 16, 23, 92}}}), |
|
|
|
lists:flatten([D, $ , T]) |
|
|
|
end), |
|
|
|
?_assertEqual("2012-10-04 11:16:23 UTC", |
|
|
|
begin |
|
|
|
{D, T} = format_time({utc, {{2012, 10, 04}, {11, 16, 23}}}), |
|
|
|
{D, T} = msToBinStr({utc, {{2012, 10, 04}, {11, 16, 23}}}), |
|
|
|
lists:flatten([D, $ , T]) |
|
|
|
end) |
|
|
|
]. |
|
|
|