【问题标题】:Spring mvc jackson: log dataSpring mvc jackson:记录数据
【发布时间】:2014-03-05 08:03:00
【问题描述】:

我有一个关于spring mvc和jackson mapper的问题:每次我调用一个rest服务传递一个错误的json(空的,错误的参数,......)客户端正确地收到一个错误,但没有办法看到详细说明服务器端的调用。 有没有办法以正确的方式登录这些信息?

提前感谢您的帮助。

法比奥

【问题讨论】:

    标签: spring-mvc jackson


    【解决方案1】:

    开始研究编组过程的好地方是AbstractMessageConverterMethodProcessor.writeWithMessageConverters - 它可以让您很好地了解正在执行的内容。

    至于日志方面,整个编组/解组过程的第一个catchServletInvocableHandlerMethod.invokeAndHandle

    catch (Exception ex) {
       if (logger.isTraceEnabled()) {
          logger.trace(getReturnValueHandlingErrorMessage("Error handling return value", returnValue), ex);
       }
       throw ex;
    }
    

    因此-在此处的日志记录配置中启用TRACE-org.springframework.web.servlet.mvc.method.annotation 将为您提供所需的信息。

    此外,捕捉这种日志输出的另一个好地方 - 这次使用 DEBUG 而不是 TRACE 是:DispatcherServlet.processHandlerException

    希望这会有所帮助。

    【讨论】:

    • 谢谢,这正是我所需要的。
    • 不用担心,很高兴我能帮上忙。
    • 关于第二个,我看到这个:if (logger.isTraceEnabled()) {logger.trace("Using resolved error view: " + exMv, ex);} if (logger.isDebugEnabled()) { logger.debug("Using resolved error view: " + exMv); },那么哪个更好?
    猜你喜欢
    • 2017-12-26
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 2013-03-21
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多