为什么控制器应该使用 notify_airbrake 而不是 Airbrake.notify
Why should controllers use notify_airbrake over Airbrake.notify
在Airbrake wiki中,它说在控制器中使用notify_airbrake
而不是Airbrake.notify
,但没有解释原因。在控制器中使用 notify_airbrake
有什么好处,为什么不应该在其他地方使用它?
notify_airbrake
is just a helper method. You don't have to use it (feel free to use Airbrake.notify
). However notify_airbrake
attaches extra information 通知(如当前用户、会话、机架环境等)。使用 Airbrake.notify
您将只发送您传递给该方法的内容。
这就是开源的美妙之处。您可以查看代码并弄清楚某些东西是如何以及为什么按原样实现的。
话虽如此,请查看气闸代码,特别是 controller_methods.rb
文件 (https://github.com/airbrake/airbrake/blob/3033798f69d20706f13fc0e3d79572041e9c7205/lib/airbrake/rails/controller_methods.rb)
你可以看到 notify_airbrake
方法在自动提取一些额外信息后实际上调用了 Airbrake.notify
(Airbrake.notify_or_ignore
) 的变体,请求 url,请求参数等仅在控制器上下文中可用。如果他们不这样做,我们将不得不在控制器中手动提取该信息并将其传递。它只是为了让我们的生活更轻松:)
我的 2 美分。
在Airbrake wiki中,它说在控制器中使用notify_airbrake
而不是Airbrake.notify
,但没有解释原因。在控制器中使用 notify_airbrake
有什么好处,为什么不应该在其他地方使用它?
notify_airbrake
is just a helper method. You don't have to use it (feel free to use Airbrake.notify
). However notify_airbrake
attaches extra information 通知(如当前用户、会话、机架环境等)。使用 Airbrake.notify
您将只发送您传递给该方法的内容。
这就是开源的美妙之处。您可以查看代码并弄清楚某些东西是如何以及为什么按原样实现的。
话虽如此,请查看气闸代码,特别是 controller_methods.rb
文件 (https://github.com/airbrake/airbrake/blob/3033798f69d20706f13fc0e3d79572041e9c7205/lib/airbrake/rails/controller_methods.rb)
你可以看到 notify_airbrake
方法在自动提取一些额外信息后实际上调用了 Airbrake.notify
(Airbrake.notify_or_ignore
) 的变体,请求 url,请求参数等仅在控制器上下文中可用。如果他们不这样做,我们将不得不在控制器中手动提取该信息并将其传递。它只是为了让我们的生活更轻松:)
我的 2 美分。