Просмотр исходного кода

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
Zaiming Shi 4 лет назад
Родитель
Сommit
0f30bdadbb
1 измененных файлов с 18 добавлено и 2 удалено
  1. 18 2
      priv/emqx.schema

+ 18 - 2
priv/emqx.schema

@@ -485,6 +485,12 @@ end}.
   {datatype, integer}
   {datatype, integer}
 ]}.
 ]}.
 
 
+{mapping, "log.supervisor_reports", "kernel.logger", [
+  {default, error},
+  {datatype, {enum, [error, progress]}},
+  hidden
+]}.
+
 %% @doc format logs in a single line.
 %% @doc format logs in a single line.
 {mapping, "log.single_line", "kernel.logger", [
 {mapping, "log.single_line", "kernel.logger", [
   {default, false},
   {default, false},
@@ -635,13 +641,21 @@ end}.
                   BasicConf#{max_no_bytes => MaxNoBytes}
                   BasicConf#{max_no_bytes => MaxNoBytes}
                 end,
                 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
     %% For the default logger that outputs to console
     DefaultHandler =
     DefaultHandler =
         if LogTo =:= console orelse LogTo =:= both ->
         if LogTo =:= console orelse LogTo =:= both ->
                 [{handler, console, logger_std_h,
                 [{handler, console, logger_std_h,
                     #{level => LogLevel,
                     #{level => LogLevel,
                       config => #{type => standard_io},
                       config => #{type => standard_io},
-                      formatter => Formatter}}];
+                      formatter => Formatter,
+                      filters => Filters
+                     }
+                 }];
            true ->
            true ->
                 [{handler, default, undefined}]
                 [{handler, default, undefined}]
         end,
         end,
@@ -653,7 +667,9 @@ end}.
                     #{level => LogLevel,
                     #{level => LogLevel,
                       config => FileConf(cuttlefish:conf_get("log.file", Conf)),
                       config => FileConf(cuttlefish:conf_get("log.file", Conf)),
                       formatter => Formatter,
                       formatter => Formatter,
-                      filesync_repeat_interval => no_repeat}}];
+                      filesync_repeat_interval => no_repeat,
+                      filters => Filters
+                     }}];
            true -> []
            true -> []
         end,
         end,