fix: old date format style example & some code format
This commit is contained in:
parent
e1ad8aab46
commit
64a455bf8e
|
@ -955,7 +955,7 @@ date_to_unix_ts(TimeUnit, Offset, FormatString, InputString) ->
|
||||||
Unit = time_unit(TimeUnit),
|
Unit = time_unit(TimeUnit),
|
||||||
OffsetSecond = emqx_calendar:offset_second(Offset),
|
OffsetSecond = emqx_calendar:offset_second(Offset),
|
||||||
OffsetDelta = erlang:convert_time_unit(OffsetSecond, second, Unit),
|
OffsetDelta = erlang:convert_time_unit(OffsetSecond, second, Unit),
|
||||||
OffsetDelta + date_to_unix_ts(Unit, FormatString, InputString).
|
date_to_unix_ts(Unit, FormatString, InputString) - OffsetDelta.
|
||||||
|
|
||||||
mongo_date() ->
|
mongo_date() ->
|
||||||
erlang:timestamp().
|
erlang:timestamp().
|
||||||
|
|
|
@ -714,10 +714,9 @@ t_format_date_funcs(_) ->
|
||||||
|
|
||||||
prop_format_date_fun() ->
|
prop_format_date_fun() ->
|
||||||
Args1 = [<<"second">>, <<"+07:00">>, <<"%m--%d--%Y---%H:%M:%S%z">>],
|
Args1 = [<<"second">>, <<"+07:00">>, <<"%m--%d--%Y---%H:%M:%S%z">>],
|
||||||
Args1DTUS = [<<"second">>, 0, <<"%m--%d--%Y---%H:%M:%S%z">>],
|
|
||||||
?FORALL(S, erlang:system_time(second),
|
?FORALL(S, erlang:system_time(second),
|
||||||
S == apply_func(date_to_unix_ts,
|
S == apply_func(date_to_unix_ts,
|
||||||
Args1DTUS ++ [apply_func(format_date,
|
Args1 ++ [apply_func(format_date,
|
||||||
Args1 ++ [S])])),
|
Args1 ++ [S])])),
|
||||||
Args2 = [<<"millisecond">>, <<"+04:00">>, <<"--%m--%d--%Y---%H:%M:%S:%3N%z">>],
|
Args2 = [<<"millisecond">>, <<"+04:00">>, <<"--%m--%d--%Y---%H:%M:%S:%3N%z">>],
|
||||||
Args2DTUS = [<<"millisecond">>, <<"--%m--%d--%Y---%H:%M:%S:%3N%z">>],
|
Args2DTUS = [<<"millisecond">>, <<"--%m--%d--%Y---%H:%M:%S:%3N%z">>],
|
||||||
|
@ -735,8 +734,7 @@ prop_format_date_fun() ->
|
||||||
Second = erlang:system_time(second),
|
Second = erlang:system_time(second),
|
||||||
Args3 = [<<"second">>, <<"+04:00">>, <<"--%m--%d--%Y---%H:%M:%S">>, Second],
|
Args3 = [<<"second">>, <<"+04:00">>, <<"--%m--%d--%Y---%H:%M:%S">>, Second],
|
||||||
Formatters3 = apply_func(format_date, Args3),
|
Formatters3 = apply_func(format_date, Args3),
|
||||||
% -04:00 remove offset
|
Args3DTUS = [<<"second">>, <<"+04:00">>, <<"--%m--%d--%Y---%H:%M:%S">>, Formatters3],
|
||||||
Args3DTUS = [<<"second">>, <<"-04:00">>, <<"--%m--%d--%Y---%H:%M:%S">>, Formatters3],
|
|
||||||
Second == apply_func(date_to_unix_ts, Args3DTUS).
|
Second == apply_func(date_to_unix_ts, Args3DTUS).
|
||||||
|
|
||||||
apply_func(Name, Args) when is_atom(Name) ->
|
apply_func(Name, Args) when is_atom(Name) ->
|
||||||
|
|
|
@ -479,6 +479,10 @@ log.formatter = text
|
||||||
##
|
##
|
||||||
## For example:
|
## For example:
|
||||||
## log.formatter.text.date.format = %Y-%m-%dT%H:%M:%S.%6N %:z
|
## log.formatter.text.date.format = %Y-%m-%dT%H:%M:%S.%6N %:z
|
||||||
|
##
|
||||||
|
## Before 4.2, the default date format was:
|
||||||
|
## log.formatter.text.date.format = %Y-%m-%d %H:%M:%S.%3N
|
||||||
|
##
|
||||||
## Default: rfc3339
|
## Default: rfc3339
|
||||||
# log.formatter.text.date.format = rfc3339
|
# log.formatter.text.date.format = rfc3339
|
||||||
|
|
||||||
|
|
|
@ -591,7 +591,6 @@
|
||||||
{"4.3.12",
|
{"4.3.12",
|
||||||
[{delete_module,emqx_calendar},
|
[{delete_module,emqx_calendar},
|
||||||
{load_module,emqx_logger_textfmt,brutal_purge,soft_purge,[]},
|
{load_module,emqx_logger_textfmt,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_alarm,brutal_purge,soft_purge,[]},
|
|
||||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
|
{load_module,emqx_access_rule,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||||
|
@ -641,7 +640,6 @@
|
||||||
{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_alarm,brutal_purge,soft_purge,[]},
|
|
||||||
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
|
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx,brutal_purge,soft_purge,[]},
|
{load_module,emqx,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
|
@ -673,7 +671,6 @@
|
||||||
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_alarm,brutal_purge,soft_purge,[]},
|
|
||||||
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
|
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx,brutal_purge,soft_purge,[]},
|
{load_module,emqx,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
|
@ -708,7 +705,6 @@
|
||||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_alarm,brutal_purge,soft_purge,[]},
|
|
||||||
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
|
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx,brutal_purge,soft_purge,[]},
|
{load_module,emqx,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
|
@ -743,7 +739,6 @@
|
||||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
{load_module,emqx_frame,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_alarm,brutal_purge,soft_purge,[]},
|
|
||||||
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
|
{load_module,emqx_os_mon,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx,brutal_purge,soft_purge,[]},
|
{load_module,emqx,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
|
|
|
@ -55,7 +55,7 @@ formatter(FormatterBin) when is_binary(FormatterBin) ->
|
||||||
do_formatter(FormatterBin, []).
|
do_formatter(FormatterBin, []).
|
||||||
|
|
||||||
offset_second(Offset) ->
|
offset_second(Offset) ->
|
||||||
do_offset_second(Offset).
|
offset_second_(Offset).
|
||||||
|
|
||||||
format(Time, Unit, Formatter) ->
|
format(Time, Unit, Formatter) ->
|
||||||
format(Time, Unit, undefined, Formatter).
|
format(Time, Unit, undefined, Formatter).
|
||||||
|
@ -105,24 +105,24 @@ do_formatter(<<Char:8, Tail/binary>>, [Str | Formatter]) when is_list(Str) ->
|
||||||
do_formatter(Tail, [lists:append(Str, [Char]) | Formatter]);
|
do_formatter(Tail, [lists:append(Str, [Char]) | Formatter]);
|
||||||
do_formatter(<<Char:8, Tail/binary>>, Formatter) -> do_formatter(Tail, [[Char] | Formatter]).
|
do_formatter(<<Char:8, Tail/binary>>, Formatter) -> do_formatter(Tail, [[Char] | Formatter]).
|
||||||
|
|
||||||
do_offset_second(OffsetSecond) when is_integer(OffsetSecond) -> OffsetSecond;
|
offset_second_(OffsetSecond) when is_integer(OffsetSecond) -> OffsetSecond;
|
||||||
do_offset_second(undefined) -> 0;
|
offset_second_(undefined) -> 0;
|
||||||
do_offset_second("local") -> do_offset_second(local);
|
offset_second_("local") -> offset_second_(local);
|
||||||
do_offset_second(<<"local">>) -> do_offset_second(local);
|
offset_second_(<<"local">>) -> offset_second_(local);
|
||||||
do_offset_second(local) ->
|
offset_second_(local) ->
|
||||||
UniversalTime = calendar:system_time_to_universal_time(erlang:system_time(second), second),
|
UniversalTime = calendar:system_time_to_universal_time(erlang:system_time(second), second),
|
||||||
LocalTime = erlang:universaltime_to_localtime(UniversalTime),
|
LocalTime = erlang:universaltime_to_localtime(UniversalTime),
|
||||||
LocalSecs = calendar:datetime_to_gregorian_seconds(LocalTime),
|
LocalSecs = calendar:datetime_to_gregorian_seconds(LocalTime),
|
||||||
UniversalSecs = calendar:datetime_to_gregorian_seconds(UniversalTime),
|
UniversalSecs = calendar:datetime_to_gregorian_seconds(UniversalTime),
|
||||||
LocalSecs - UniversalSecs;
|
LocalSecs - UniversalSecs;
|
||||||
do_offset_second(Offset) when is_binary(Offset) ->
|
offset_second_(Offset) when is_binary(Offset) ->
|
||||||
do_offset_second(erlang:binary_to_list(Offset));
|
offset_second_(erlang:binary_to_list(Offset));
|
||||||
do_offset_second("Z") -> 0;
|
offset_second_("Z") -> 0;
|
||||||
do_offset_second("z") -> 0;
|
offset_second_("z") -> 0;
|
||||||
do_offset_second(Offset) when is_list(Offset) ->
|
offset_second_(Offset) when is_list(Offset) ->
|
||||||
Sign = hd(Offset),
|
Sign = hd(Offset),
|
||||||
((Sign == $+) orelse (Sign == $-))
|
((Sign == $+) orelse (Sign == $-))
|
||||||
orelse error({bad_zone, Offset}),
|
orelse error({bad_time_offset, Offset}),
|
||||||
Signs = #{$+ => 1, $- => -1},
|
Signs = #{$+ => 1, $- => -1},
|
||||||
PosNeg = maps:get(Sign, Signs),
|
PosNeg = maps:get(Sign, Signs),
|
||||||
[Sign | HM] = Offset,
|
[Sign | HM] = Offset,
|
||||||
|
@ -135,14 +135,14 @@ do_offset_second(Offset) when is_list(Offset) ->
|
||||||
[HHMM] when erlang:length(HHMM) == 4 ->
|
[HHMM] when erlang:length(HHMM) == 4 ->
|
||||||
{string:sub_string(HHMM, 1,2), string:sub_string(HHMM, 3,4), "0"};
|
{string:sub_string(HHMM, 1,2), string:sub_string(HHMM, 3,4), "0"};
|
||||||
_ ->
|
_ ->
|
||||||
error({bad_zone, Offset})
|
error({bad_time_offset, Offset})
|
||||||
end,
|
end,
|
||||||
Hour = erlang:list_to_integer(HourStr),
|
Hour = erlang:list_to_integer(HourStr),
|
||||||
Minute = erlang:list_to_integer(MinuteStr),
|
Minute = erlang:list_to_integer(MinuteStr),
|
||||||
Second = erlang:list_to_integer(SecondStr),
|
Second = erlang:list_to_integer(SecondStr),
|
||||||
(Hour =< 23) orelse error({bad_hour, Hour}),
|
(Hour =< 23) orelse error({bad_time_offset_hour, Hour}),
|
||||||
(Minute =< 59) orelse error({bad_minute, Minute}),
|
(Minute =< 59) orelse error({bad_time_offset_minute, Minute}),
|
||||||
(Second =< 59) orelse error({bad_second, Second}),
|
(Second =< 59) orelse error({bad_time_offset_second, Second}),
|
||||||
PosNeg * (Hour * 3600 + Minute * 60 + Second).
|
PosNeg * (Hour * 3600 + Minute * 60 + Second).
|
||||||
|
|
||||||
do_format(Time, Unit, Offset, Formatter) ->
|
do_format(Time, Unit, Offset, Formatter) ->
|
||||||
|
@ -345,7 +345,7 @@ padding(Data, _Len) ->
|
||||||
|
|
||||||
do_parse(DateStr, Unit, Formatter) ->
|
do_parse(DateStr, Unit, Formatter) ->
|
||||||
DateInfo = do_parse_date_str(DateStr, Formatter, #{}),
|
DateInfo = do_parse_date_str(DateStr, Formatter, #{}),
|
||||||
{Precise, PrecisionUnit} = precise(DateInfo),
|
{Precise, PrecisionUnit} = precision(DateInfo),
|
||||||
Counter =
|
Counter =
|
||||||
fun
|
fun
|
||||||
(year, V, Res) ->
|
(year, V, Res) ->
|
||||||
|
@ -384,11 +384,11 @@ do_parse(DateStr, Unit, Formatter) ->
|
||||||
Count = maps:fold(Counter, 0, DateInfo) - (?SECONDS_PER_DAY * Precise),
|
Count = maps:fold(Counter, 0, DateInfo) - (?SECONDS_PER_DAY * Precise),
|
||||||
erlang:convert_time_unit(Count, PrecisionUnit, Unit).
|
erlang:convert_time_unit(Count, PrecisionUnit, Unit).
|
||||||
|
|
||||||
precise(#{nanosecond := _}) -> {1000_000_000, nanosecond};
|
precision(#{nanosecond := _}) -> {1000_000_000, nanosecond};
|
||||||
precise(#{microsecond := _}) -> {1000_000, microsecond};
|
precision(#{microsecond := _}) -> {1000_000, microsecond};
|
||||||
precise(#{millisecond := _}) -> {1000, millisecond};
|
precision(#{millisecond := _}) -> {1000, millisecond};
|
||||||
precise(#{second := _}) -> {1, second};
|
precision(#{second := _}) -> {1, second};
|
||||||
precise(_) -> {1, second}.
|
precision(_) -> {1, second}.
|
||||||
|
|
||||||
do_parse_date_str(<<>>, _, Result) -> Result;
|
do_parse_date_str(<<>>, _, Result) -> Result;
|
||||||
do_parse_date_str(_, [], Result) -> Result;
|
do_parse_date_str(_, [], Result) -> Result;
|
||||||
|
@ -408,36 +408,29 @@ do_parse_date_str(Date, [Key | Formatter], Result) ->
|
||||||
end.
|
end.
|
||||||
|
|
||||||
date_size(Str) when is_list(Str) -> erlang:length(Str);
|
date_size(Str) when is_list(Str) -> erlang:length(Str);
|
||||||
date_size(DateName) ->
|
date_size(year) -> 4;
|
||||||
Map = #{
|
date_size(month) -> 2;
|
||||||
year => 4,
|
date_size(day) -> 2;
|
||||||
month => 2,
|
date_size(hour) -> 2;
|
||||||
day => 2,
|
date_size(minute) -> 2;
|
||||||
hour => 2,
|
date_size(second) -> 2;
|
||||||
minute => 2,
|
date_size(millisecond) -> 3;
|
||||||
second => 2,
|
date_size(microsecond) -> 6;
|
||||||
millisecond => 3,
|
date_size(nanosecond) -> 9;
|
||||||
microsecond => 6,
|
date_size(timezone) -> 5;
|
||||||
nanosecond => 9,
|
date_size(timezone1) -> 6;
|
||||||
timezone => 5,
|
date_size(timezone2) -> 9.
|
||||||
timezone1 => 6,
|
|
||||||
timezone2 => 9
|
dm(1) -> 0;
|
||||||
},
|
dm(2) -> 31;
|
||||||
maps:get(DateName, Map).
|
dm(3) -> 59;
|
||||||
|
dm(4) -> 90;
|
||||||
|
dm(5) -> 120;
|
||||||
|
dm(6) -> 151;
|
||||||
|
dm(7) -> 181;
|
||||||
|
dm(8) -> 212;
|
||||||
|
dm(9) -> 243;
|
||||||
|
dm(10) -> 273;
|
||||||
|
dm(11) -> 304;
|
||||||
|
dm(12) -> 334.
|
||||||
|
|
||||||
dm(Month) ->
|
|
||||||
MonthDays = #{
|
|
||||||
1 => 0,
|
|
||||||
2 => 31,
|
|
||||||
3 => 59,
|
|
||||||
4 => 90,
|
|
||||||
5 => 120,
|
|
||||||
6 => 151,
|
|
||||||
7 => 181,
|
|
||||||
8 => 212,
|
|
||||||
9 => 243,
|
|
||||||
10 => 273,
|
|
||||||
11 => 304,
|
|
||||||
12 => 334
|
|
||||||
},
|
|
||||||
maps:get(Month, MonthDays).
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
]).
|
]).
|
||||||
|
|
||||||
check_config(Config0) ->
|
check_config(Config0) ->
|
||||||
Config = maps:without([timezone_offset, timezone, date_format], Config0),
|
Config = maps:without([date_format], Config0),
|
||||||
logger_formatter:check_config(Config).
|
logger_formatter:check_config(Config).
|
||||||
|
|
||||||
format(#{msg := Msg0, meta := Meta} = Event,
|
format(#{msg := Msg0, meta := Meta} = Event,
|
||||||
|
@ -37,7 +37,6 @@ format(#{msg := Msg0, meta := Meta} = Event,
|
||||||
Msg = maybe_merge(Msg0, Meta),
|
Msg = maybe_merge(Msg0, Meta),
|
||||||
Template = [time | Template0],
|
Template = [time | Template0],
|
||||||
logger_formatter:format(Event#{msg := Msg}, Config#{template => Template});
|
logger_formatter:format(Event#{msg := Msg}, Config#{template => Template});
|
||||||
|
|
||||||
format(#{msg := Msg0, meta := Meta} = Event,
|
format(#{msg := Msg0, meta := Meta} = Event,
|
||||||
#{date_format := DFS} = Config) ->
|
#{date_format := DFS} = Config) ->
|
||||||
Msg = maybe_merge(Msg0, Meta),
|
Msg = maybe_merge(Msg0, Meta),
|
||||||
|
|
Loading…
Reference in New Issue