【问题标题】:Handling all uncaught errors on Elixir/Phoenix处理 Elixir/Phoenix 上所有未捕获的错误
【发布时间】:2018-03-14 13:45:25
【问题描述】:

我正在构建一个 elixir/phoenix 项目,并希望对所有未捕获的错误进行一些额外的处理,包括控制器、视图、路由器和套接字通信错误。

我想要做的是捕获所有未捕获的错误并将错误信息发送到外部错误日志聚合器并再次重新引发错误以完成原始错误过程。

对我来说最好的选择是什么,例如以下选项? :

  • 使用 Plug.ErrorHandler
  • 使用自定义插件
  • 实现检测器

提前谢谢你。

【问题讨论】:

  • 投票结束——非常广泛的问题,征求意见。也许你可以把问题缩小一点。
  • 您可以查看 Sentry 库中的 Elixir 以了解其他人如何做到这一点的一些示例。

标签: elixir phoenix-framework


【解决方案1】:

这个问题非常基于意见,但我会尽力提供最小偏见的答案。

Phoenix 本身uses a custom module,即Plug.Debugger 用于在dev 环境中几乎达到此目的。它的大部分功能是提供反馈,看起来你所需要的只是一个自定义的call/2 包装器。

上述功能正是Plug.ErrorHandler 所提供的is provided,所以老实说,我认为没有任何理由重新发明轮子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多