Skip to content

Commit

Permalink
Remove old lager stuff from advanced.config and add handlers with def…
Browse files Browse the repository at this point in the history
…inable formatting to logger and syslog.
  • Loading branch information
Martin Cox committed Feb 16, 2022
1 parent aad3043 commit c2ce4ea
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 23 deletions.
77 changes: 74 additions & 3 deletions priv/riak.schema
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@
{datatype, {enum, [debug, info, notice, warning, error, critical, alert, emergency, none]}}
]}.

%% @doc Format string for the messages emitted to default log. The string is passed into
%% the handler as a logger_formatter template, the format is a list containing strings
%% and atoms. The atoms denote the keys for retrieving metadata from the logger events.
%% More information on default metadata can be found here (https://www.erlang.org/doc/man/logger_formatter.html#type-template).
{mapping, "logger.format", "kernel.logger", [
{default, "[time,\" [\",level,\"] \",pid,\"@\",mfa,\":\",line,\" \",msg,\"\\n\"]."}
]}.

%% @doc Filename to use for log files.
{mapping, "logger.file", "kernel.logger", [
{default, "$(platform_log_dir)/console.log"},
Expand All @@ -26,20 +34,83 @@
{datatype, bytesize}
]}.

%% @doc Determines if messages should emit to syslog.
{mapping, "syslogger.enabled", "kernel.logger", [
{default, off},
{datatype, flag}
]}.

%% @doc The severity level of the syslog log, default is 'notice'.
{mapping, "syslogger.level", "kernel.logger", [
{default, notice},
{datatype, {enum, [debug, info, notice, warning, error, critical, alert, emergency, none]}}
]}.

%% @doc Format string for the messages emitted to syslog. The string is passed into
%% the handler as a logger_formatter template, the format is a list containing strings
%% and atoms. The atoms denote the keys for retrieving metadata from the logger events.
%% More information on default metadata can be found here (https://www.erlang.org/doc/man/logger_formatter.html#type-template).
{mapping, "syslogger.format", "kernel.logger", [
{default, "[\"severity=\",level,\" text=\",msg]."},
{datatype, string}
]}.

{translation,
"kernel.logger",
fun(Conf) ->
LogFile = cuttlefish:conf_get("logger.file", Conf),
MaxNumBytes = cuttlefish:conf_get("logger.max_file_size", Conf),
MaxNumFiles = cuttlefish:conf_get("logger.max_files", Conf),
ConfigMap = #{config => #{file => LogFile,

DefaultFormatStr = cuttlefish:conf_get("logger.format", Conf),
DefaultFormatTerm =
case erl_scan:string(DefaultFormatStr) of
{ok, DefaultTokens, _} ->
case erl_parse:parse_term(DefaultTokens) of
{ok, DefaultTerm} ->
DefaultTerm;
{error, {_, _, DefaultError}} ->
cuttlefish:error(foo)
end;
{error, {_, _, DefaultScanError}} ->
cuttlefish:error(foo)
end,
ConfigMap0 = #{config => #{file => LogFile,
max_no_bytes => MaxNumBytes,
max_no_files => MaxNumFiles},
formatter => {logger_formatter,
#{template => [time," [",level,"] ",pid,"@",mfa,":",line," ",msg,"\n"]}
#{template => DefaultFormatTerm}
}
},
[{handler, default, logger_std_h, ConfigMap}]

DefaultLog = [{handler, default, logger_std_h, ConfigMap0}],

SyslogLog =
case cuttlefish:conf_get("syslogger.enabled", Conf) of
true ->
SyslogLevel = cuttlefish:conf_get("syslogger.level", Conf),
SyslogFormatStr = cuttlefish:conf_get("syslogger.format", Conf),
SyslogFormatTerm =
case erl_scan:string(SyslogFormatStr) of
{ok, SyslogTokens, _} ->
case erl_parse:parse_term(SyslogTokens) of
{ok, SyslogTerm} ->
SyslogTerm;
{error, {_, _, SyslogError}} ->
cuttlefish:error(foo)
end;
{error, {_, _, SyslogScanError}} ->
cuttlefish:error(foo)
end,
ConfigMap1 = #{level => SyslogLevel,
formatter => {logger_formatter,
#{template => SyslogFormatTerm,
single_line => true}}, facility => user},
[{handler, syslog, syslogger, ConfigMap1}];
false ->
[]
end,
DefaultLog ++ SyslogLog
end
}.

Expand Down
20 changes: 0 additions & 20 deletions rel/files/advanced.config
Original file line number Diff line number Diff line change
Expand Up @@ -81,26 +81,6 @@
{fullsync_use_background_manager, true}
]},

{lager,
[
{extra_sinks,
[
{object_lager_event,
[{handlers,
[{lager_file_backend,
[{file, "{{platform_log_dir}}/object.log"},
{level, info},
{formatter_config, [date, " ", time," [",severity,"] ",message, "\n"]}
]
}]
},
{async_threshold, 500},
{async_threshold_window, 50}]
}
]
}
]
},
{setup,
[
{home, "{{platform_data_dir}}/setup"}
Expand Down

0 comments on commit c2ce4ea

Please sign in to comment.