停止在404找不到RestTemplate日志记录警告

时间:2013-11-22 08:34:13

标签: java spring resttemplate

我们有一个基于服务的平台,其中可能(/常见)无法找到资源 - 例如使用错误的用户名调用我们的安全模块将返回404 Not Found,这是每次用户在登录框中输入错误时都会发生的事情。

我们使用Spring RestTemplate进行这些调用,这很棒,但是每次遇到404时,它都会尽职地记录一条警告我们的日志。

我们显然不想抑制警告,除非在404找不到特定情况但似乎没有办法做到这一点(logger是private / final,调用它的方法是私有等)

我们的解决方案并不好 - 使用空数据集返回200 / OK并处理空指针,这既令人讨厌又不是一个很好的宁静实现。

有谁知道更好的方法吗?

3 个答案:

答案 0 :(得分:1)

如何在日志记录附加程序上使用RegexFilter过滤器?

http://logging.apache.org/log4j/2.x/manual/filters.html#RegexFilter

......这是Log4J的做法,但我猜测其他日志库必须有类似的过滤器。

答案 1 :(得分:0)

实现一个ResponseErrorHandler,它为hasError()返回false。

使用setErrorHandler()将其分配给您的rest模板。

不会记录警告。

答案 2 :(得分:0)

这是在Spring Framework的问题跟踪器中以issue SPR-12760身份登录,并在今年早些时候(2015年)在4.1.6版中解决。解决方案有两个:首先,警告消息被降级为调试消息,其次,更容易覆盖负责处理错误的代码部分。因此,作为问题的解决方案,请将org.springframework:spring-web module升级到至少版本4.1.6.RELEASE