From fc461784f8d8e9bc9964d6180fd398b69adda03c Mon Sep 17 00:00:00 2001 From: Yuta Iwama Date: Thu, 12 Dec 2019 11:18:02 +0900 Subject: [PATCH] Fix bug that log level in system config doesn't affect Signed-off-by: Yuta Iwama --- lib/fluent/supervisor.rb | 2 +- lib/fluent/system_config.rb | 2 +- test/config/test_system_config.rb | 2 +- test/test_supervisor.rb | 11 +++++++++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/fluent/supervisor.rb b/lib/fluent/supervisor.rb index 1bd61d3c1c..ba1505bcb1 100644 --- a/lib/fluent/supervisor.rb +++ b/lib/fluent/supervisor.rb @@ -780,7 +780,7 @@ def build_system_config(conf) opt = {} Fluent::SystemConfig::SYSTEM_CONFIG_PARAMETERS.each do |param| if @cl_opt.key?(param) && !@cl_opt[param].nil? - if param == :log_level && opt[:log_level] == Fluent::Log::LEVEL_INFO + if param == :log_level && @cl_opt[:log_level] == Fluent::Log::LEVEL_INFO # info level can't be specified via command line option. # log_level is info here, it is default value and 's log_level should be applied if exists. next diff --git a/lib/fluent/system_config.rb b/lib/fluent/system_config.rb index 8bc4888f78..f3f9420c20 100644 --- a/lib/fluent/system_config.rb +++ b/lib/fluent/system_config.rb @@ -32,7 +32,7 @@ class SystemConfig config_param :workers, :integer, default: 1 config_param :root_dir, :string, default: nil - config_param :log_level, :enum, list: [:trace, :debug, :info, :warn, :error, :fatal], default: nil + config_param :log_level, :enum, list: [:trace, :debug, :info, :warn, :error, :fatal], default: 'info' config_param :suppress_repeated_stacktrace, :bool, default: nil config_param :emit_error_log_interval, :time, default: nil config_param :suppress_config_dump, :bool, default: nil diff --git a/test/config/test_system_config.rb b/test/config/test_system_config.rb index 6427dff580..32dea77540 100644 --- a/test/config/test_system_config.rb +++ b/test/config/test_system_config.rb @@ -71,7 +71,7 @@ def parse_text(text) sc.overwrite_variables(s.for_system_config) assert_equal(1, sc.workers) assert_nil(sc.root_dir) - assert_nil(sc.log_level) + assert_equal(Fluent::Log::LEVEL_INFO, sc.log_level) assert_nil(sc.suppress_repeated_stacktrace) assert_nil(sc.emit_error_log_interval) assert_nil(sc.suppress_config_dump) diff --git a/test/test_supervisor.rb b/test/test_supervisor.rb index a8754b2f09..7808cca6b4 100644 --- a/test/test_supervisor.rb +++ b/test/test_supervisor.rb @@ -423,6 +423,17 @@ def test_inline_config assert_equal inline_config, sv.instance_variable_get(:@inline_config) end + def test_log_level_affects + opts = Fluent::Supervisor.default_options + sv = Fluent::Supervisor.new(opts) + + c = Fluent::Config::Element.new('system', '', { 'log_level' => 'error' }, []) + stub(sv).read_config { config_element('ROOT', '', {}, [c]) } + + sv.configure + assert_equal Fluent::Log::LEVEL_ERROR, $log.level + end + def create_debug_dummy_logger dl_opts = {} dl_opts[:log_level] = ServerEngine::DaemonLogger::DEBUG