Packages
diint_utilites_common_app
1.4.2
1.4.23
1.4.22
1.4.21
1.4.20
1.4.19
1.4.18
1.4.17
1.4.16
1.4.15
1.4.14
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.9
1.3.8
1.3.7
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.101
1.2.11
1.2.10
1.2.9
1.2.8
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
библиотеки для работы с ребитом и протоколы
Current section
Files
Jump to
Current section
Files
src/log/json_logger_formatter.erl
-module(json_logger_formatter).
-export([format/2]).
format( #{level := Level,
msg := Message,
meta := #{pid := Pid,
time := Timestamp,
line := Line,
mfa := {MODULE, FUNCTION_NAME, _FUNCTION_ARITY}
}} = MI, _FConfig)->
case jsone:try_encode(#{level => Level, message => get_message(Message), time => msToDate(Timestamp),module => MODULE,func_name => FUNCTION_NAME},[native_utf8]) of
{ok,Bin} -> Bin;
_else -> case jsone:try_encode(#{message => unicode:characters_to_binary(logger_formatter:format(MI,get_default_config())), level => Level, time => msToDate(Timestamp), module => MODULE,func_name => FUNCTION_NAME},[native_utf8]) of
{ok,Bin} -> Bin;
_else -> jsone:try_encode(#{message => <<"критическая ошибка логирования">>, level => <<"Fatal">>})
end
end.
get_message({report, Report})->
Report;
get_message({string, Chardata})->
unicode:characters_to_binary(Chardata);
get_message({Io, Data})-> io_lib:format(Io,Data).
get_default_config()->
#{chars_limit => unlimited,
depth => unlimited,
legacy_header => true,
max_size => unlimited,
report_cb => fun(Report) -> logger:format_report(Report) end,
single_line => true,
template => [time," ",level,": ",msg,"\n"],
time_designator => $T,
time_offset => ""}.
msToDate(Milliseconds) ->
MegaSecs = Milliseconds div 1000000000000,
Secs = Milliseconds div 1000000 - MegaSecs*1000000,
MicroSecs = Milliseconds rem 1000000,
calendar:
now_to_local_time({MegaSecs, Secs, MicroSecs}).
% BaseDate = calendar:datetime_to_gregorian_seconds({{1970,1,1},{0,0,0}}),
% Seconds = BaseDate + (Milliseconds div 1000000),
% {Date, {Hour, Minute, Second}} = calendar:gregorian_seconds_to_datetime(Seconds),
% {Date,{Hour + 3 rem 23,Minute, Second}}.