【发布时间】:2019-01-29 12:48:20
【问题描述】:
我希望尽可能多地记录导致多线程 ruby 脚本崩溃的异常的信息。我知道有at exit 方法,并且最新的错误可以在$! 中访问
require 'logger'
logger = Logger.new('logfile.log')
at_exit { logger.info "Exception that killed us is: #{$!}" }
threads =
10.times.with_object([]) do |_, t|
t << Thread.new { sleep 1 }
end
threads << Thread.new { raise RuntimeError, 'We died' }
threads.each(&:join)
但是,在日志中这看起来像:
I, [2018-08-23T10:40:47.307841 #6772] INFO -- : Exception that killed us is: We died
有没有办法在其中添加更多信息,例如回溯、文件和行号?
【问题讨论】: