5

Airbrake wiki中,它说使用notify_airbrakein controllers 而不是Airbrake.notify,但没有解释原因。在控制器中使用有什么好处,notify_airbrake为什么不应该在其他地方使用?

4

2 回答 2

3

notify_airbrake只是一个辅助方法。您不必使用它(随意使用Airbrake.notify)。但是会在通知中notify_airbrake附加额外的信息(如当前用户、会话、机架环境等)。与Airbrake.notify您一起只会将您传递给该方法的内容发送给该方法。

于 2015-11-04T15:09:10.397 回答
1

这就是开源的美妙之处。您可以查看代码并弄清楚某些东西是如何以及为什么以这种方式实现的。

话虽如此,请查看 airbrake 代码,特别是controller_methods.rb文件(https://github.com/airbrake/airbrake/blob/3033798f69d20706f13fc0e3d79572041e9c7205/lib/airbrake/rails/controller_methods.rb

您可以看到该notify_airbrake方法在自动提取一些额外信息(如会话数据、请求 url、请求参数等)后实际上调用了Airbrake.notify( ) 的变体,Airbrake.notify_or_ignore这些信息仅在控制器上下文中可用。如果他们不这样做,我们将不得不在控制器中手动提取该信息并将其传递。它只是为了让我们的生活更轻松:)

我的 2 美分。

于 2015-11-04T15:17:27.347 回答