我在Heroku上运行一个带有Papertrails插件的Sidekiq应用程序,并使用异常来失败作业。对于每个异常,完整的堆栈跟踪都存储在Papertrail日志中,这绝对不是我想要的。
我没有找到关闭该功能的方法。你能给我一些提示吗? 也许我应该以不同的方式处理作业失败?
谢谢!
我没有找到关闭该功能的方法。你能给我一些提示吗? 也许我应该以不同的方式处理作业失败?
谢谢!
这里有一个标准错误日志记录器的修改版,它将仅限于应用程序唯一的行来记录回溯日志:
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
paper_trail
gem,所以您确定这个标签相关吗? - Jared Beck