Module: Legion::Logging::Helper

Instance Method Summary collapse

Instance Method Details

#handle_exception(exception, task_id: nil, level: :error, handled: true, **opts) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/legion/data.rb', line 24

def handle_exception(exception, task_id: nil, level: :error, handled: true, **opts)
  context = opts.map { |key, value| "#{key}=#{value.inspect}" }.join(' ')
  message = "#{exception.class}: #{exception.message}"
  message = "#{message} task_id=#{task_id}" if task_id
  message = "#{message} handled=#{handled}"
  message = "#{message} #{context}" unless context.empty?
  warn("[#{level}] #{message}")
rescue StandardError => e
  warn("handle_exception fallback failed: #{e.class}: #{e.message}")
end