0

这是我的设置:

  • WEBAPP:Spring MVC Web 应用程序
  • LIBRARY:我在 WEBAPP 中使用的内部库

在 WEBAPP 中,我在“基本”控制器中定义了一个异常处理程序,如下所示:

@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public final ModelAndView handleException(
        final Exception e,
        final HttpServletRequest request)
{
    // some stuff...
    LOG.error(message, e);
    // some more stuff...
}

其中 LOG 是我在类中静态定义的 log4j 记录器。

在 LIBRARY 中,我将任何异常记录为错误,然后将它们重新抛出给客户端。在这种情况下,客户端是WEBAPP。现在,如您所见,每次发生错误时,我都有 2 个日志条目!一个用于 LIBRARY,一个用于 WEBAPP。

我不想删除 WEBAPP 的异常处理程序,因为异常可以在 LIBRARY 之外引发,我想在向 WEBAPP 客户端返回 500 之前记录它们。

有什么建议么?

4

1 回答 1

0

我采取的方法是,如果你打算在那个地方做一些事情,你应该只捕获一个异常。记录异常没有做任何事情。我的建议是不要登录您的图书馆。只需让异常正常冒泡,因为听起来您并没有尝试在库中做任何特别的事情。

于 2013-02-25T18:47:41.193 回答