Bugsnag に metadata を送ることが出来るので、ここにもメモします。
# どこかに定義
class MasutakaError < StandardError
include Bugsnag::MetaData
end
# それぞれの例外クラスは StandardError の代わりに MasutakaError を継承する
class SummarizedResultBlankError < MasutakaError; end
class SizeZeroError < MasutakaError; end
exception = SummarizedResultBlankError.new("It broke!")
exception.bugsnag_meta_data = {
user_info: {
name: 'masutaka'
}
}
Bugsnag.notify(exception)
ドキュメントはこちら。
https://github.com/bugsnag/bugsnag-ruby/blob/v4.1.0/docs/Notification%20Options.md#exception-mixin
追記(2016-06-08):
職場の同僚から Bugsnag.notify に直接渡せると教えてもらいました。
https://github.com/bugsnag/bugsnag-ruby/blob/v4.1.0/spec/notification_spec.rb#L118-L148
以下のように書きかえられます。初めに挙げた方法と同じ metadata を設
定したら、こちらが優先されます。
class SummarizedResultBlankError < StandardError; end
class SizeZeroError < StandardError; end
Bugsnag.notify(
SummarizedResultBlankError.new("It broke!"),
user_info: { name: 'masutaka' }
)