Skip to content

Commit 2954a4d

Browse files
committed
log: add system_config option to force stacktrace level
Signed-off-by: Daijiro Fukuda <[email protected]>
1 parent 6821e4b commit 2954a4d

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

lib/fluent/log.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ def initialize(logger, opts={})
138138
@optional_attrs = nil
139139

140140
@suppress_repeated_stacktrace = opts[:suppress_repeated_stacktrace]
141+
@forced_stacktrace_level = nil
141142
@ignore_repeated_log_interval = opts[:ignore_repeated_log_interval]
142143
@ignore_same_log_interval = opts[:ignore_same_log_interval]
143144

@@ -240,6 +241,14 @@ def reopen!
240241
nil
241242
end
242243

244+
def force_stacktrace_level?
245+
not @forced_stacktrace_level.nil?
246+
end
247+
248+
def force_stacktrace_level(level)
249+
@forced_stacktrace_level = level
250+
end
251+
243252
def enable_debug(b=true)
244253
@debug_mode = b
245254
self
@@ -500,6 +509,16 @@ def suppress_stacktrace?(backtrace)
500509
def dump_stacktrace(type, backtrace, level)
501510
return if @level > level
502511

512+
dump_stacktrace_internal(
513+
type,
514+
backtrace,
515+
force_stacktrace_level? ? @forced_stacktrace_level : level,
516+
)
517+
end
518+
519+
def dump_stacktrace_internal(type, backtrace, level)
520+
return if @level > level
521+
503522
time = Time.now
504523

505524
if @format == :text

lib/fluent/supervisor.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,7 @@ def setup_global_logger(supervisor: false)
908908
ignore_repeated_log_interval: system_config.ignore_repeated_log_interval,
909909
ignore_same_log_interval: system_config.ignore_same_log_interval,
910910
)
911+
$log.force_stacktrace_level(system_config.log.forced_stacktrace_level) if system_config.force_stacktrace_level?
911912
$log.enable_color(false) if actual_log_path
912913
$log.enable_debug if system_config.log_level <= Fluent::Log::LEVEL_DEBUG
913914

lib/fluent/system_config.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class SystemConfig
7979
end
8080
end
8181
config_param :rotate_size, :size, default: nil
82+
config_param :forced_stacktrace_level, :enum, list: [:none, :trace, :debug, :info, :warn, :error, :fatal], default: :none
8283
end
8384

8485
config_section :counter_server, multi: false do
@@ -118,6 +119,10 @@ class SystemConfig
118119
config_param :compress, :enum, list: [:text, :gzip], default: nil
119120
end
120121

122+
def force_stacktrace_level?
123+
@log.forced_stacktrace_level != :none
124+
end
125+
121126
def self.create(conf, strict_config_value=false)
122127
systems = conf.elements(name: 'system')
123128
return SystemConfig.new if systems.empty?
@@ -162,6 +167,7 @@ def configure(conf, strict_config_value=false)
162167
end
163168

164169
@log_level = Log.str_to_level(@log_level.to_s) if @log_level
170+
@log[:forced_stacktrace_level] = Log.str_to_level(@log.forced_stacktrace_level.to_s) if force_stacktrace_level?
165171
end
166172

167173
def dup

0 commit comments

Comments
 (0)