From 0f30bdadbbf4a703f848c19e862d8541b6550843 Mon Sep 17 00:00:00 2001 From: Zaiming Shi Date: Mon, 3 May 2021 19:37:22 +0200 Subject: [PATCH] feat(logging): make supervisor progress configurable by default, when primary log level is set to debug or info application controller prints supervisor progress info. this new config make use of logger's built-in filters for progress report --- priv/emqx.schema | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/priv/emqx.schema b/priv/emqx.schema index 9503d0f66..addf62857 100644 --- a/priv/emqx.schema +++ b/priv/emqx.schema @@ -485,6 +485,12 @@ end}. {datatype, integer} ]}. +{mapping, "log.supervisor_reports", "kernel.logger", [ + {default, error}, + {datatype, {enum, [error, progress]}}, + hidden +]}. + %% @doc format logs in a single line. {mapping, "log.single_line", "kernel.logger", [ {default, false}, @@ -635,13 +641,21 @@ end}. BasicConf#{max_no_bytes => MaxNoBytes} end, + Filters = case cuttlefish:conf_get("log.supervisor_reports", Conf) of + error -> [{drop_progress_reports, {fun logger_filters:progress/2, stop}}]; + progress -> [] + end, + %% For the default logger that outputs to console DefaultHandler = if LogTo =:= console orelse LogTo =:= both -> [{handler, console, logger_std_h, #{level => LogLevel, config => #{type => standard_io}, - formatter => Formatter}}]; + formatter => Formatter, + filters => Filters + } + }]; true -> [{handler, default, undefined}] end, @@ -653,7 +667,9 @@ end}. #{level => LogLevel, config => FileConf(cuttlefish:conf_get("log.file", Conf)), formatter => Formatter, - filesync_repeat_interval => no_repeat}}]; + filesync_repeat_interval => no_repeat, + filters => Filters + }}]; true -> [] end,