代码之家  ›  专栏  ›  技术社区  ›  Rich Apodaca

restlet:记录所有500个错误的堆栈跟踪

  •  2
  • Rich Apodaca  · 技术社区  · 16 年前

    我希望我的restlet应用程序记录任何生成500系列HTTP错误的资源的堆栈跟踪(使用上下文的记录器)。据我所知,这不是默认行为。

    换句话说,我不希望我的资源类在representation和acceptrepresentation方法中有任何记录器代码——它们只是抛出一个resourceexception。我希望在所有资源实例中以集中的方式处理日志逻辑。

    我可以想到两种黑客的方法(例如,继承自处理日志逻辑的资源子类),但这似乎是框架内置的东西。

    我错过了什么?

    2 回复  |  直到 16 年前
        1
  •  3
  •   Jim Ferrans    16 年前

    看一看 StatusService :

    用于处理错误状态的服务。如果在应用程序或restlet代码中引发异常,那么如果启用了该服务,它将被拦截。当捕获到异常或错误时,首先调用getstatus(throwable、request、response)方法以获取要在响应上设置的状态。[…]

    我上个月才发现这一点,它使我能够真正压缩许多错误处理代码,并确保异常得到处理,并且得到统一处理。

        2
  •  1
  •   Avi Flax    16 年前

    您可以使用过滤器来完成这项工作;在afterhandle()中,它可以检查状态代码,然后尝试记录异常。不过,我不确定这些异常是否适用于过滤器。