Sidekiq在日志中的堆栈跟踪

3
我在Heroku上运行一个带有Papertrails插件的Sidekiq应用程序,并使用异常来失败作业。对于每个异常,完整的堆栈跟踪都存储在Papertrail日志中,这绝对不是我想要的。
我没有找到关闭该功能的方法。你能给我一些提示吗? 也许我应该以不同的方式处理作业失败?
谢谢!

“[tag:papertrail]” 标签指的是 paper_trail gem,所以您确定这个标签相关吗? - Jared Beck
1
有效观点,我删除了Heroku和Papertrail标签。我认为这不是Heroku依赖性问题。 - alobodzk
1个回答

3
这是一个关于it技术的翻译内容:

这里有一个标准错误日志记录器的修改版,它将仅限于应用程序唯一的行来记录回溯日志:

class ExceptionHandlerLogger
  def call(ex, ctxHash)
    Sidekiq.logger.warn(Sidekiq.dump_json(ctxHash)) if !ctxHash.empty?
    Sidekiq.logger.warn "#{ex.class.name}: #{ex.message}"

    unless ex.backtrace.nil?
      Sidekiq.logger.warn filter_backtrace(ex.backtrace).join("\n")
    end
  end

  def filter_backtrace(backtrace)
    index = backtrace.index { |item| item.include?('/lib/sidekiq/processor.rb') }
    backtrace.first(index.to_i)
  end
end

if !Sidekiq.error_handlers.delete_if { |h| h.class == Sidekiq::ExceptionHandler::Logger }
  fail "default sidekiq logger class changed!"
end

Sidekiq.error_handlers << ExceptionHandlerLogger.new

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接