避免以下警告的最佳方法是什么?
o.s.web.servlet.PageNotFound : No mapping found for HTTP request with URI [......]
我尝试如下添加一个包罗万象的控制器:
@Controller
class CatchAllController {
@RequestMapping(value = "/**")
public ResponseEntity<?> catchAll() {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
但是由于某些原因,控制器也会捕获静态内容(即src/main/resources/static/
),因此无法访问。
另一方面,我不希望这些警告出现在日志中,因为客户端可能会访问随机URI,并且我也不想收到通知。
答案 0 :(得分:1)
另一方面,我不希望这些警告出现在日志中 因为客户端可能会访问随机URI,并且我不希望收到通知 关于它。
然后只需禁用记录这些警告的记录器。
截至Spring 5.1.4.RELEASE,这些都是通过这些成员从DispatcherServlet
记录的
/** Log category to use when no mapped handler is found for a request. */
public static final String PAGE_NOT_FOUND_LOG_CATEGORY = "org.springframework.web.servlet.PageNotFound";
/** Additional logger to use when no mapped handler is found for a request. */
protected static final Log pageNotFoundLogger = LogFactory.getLog(PAGE_NOT_FOUND_LOG_CATEGORY);
使用Logback,您可以声明类似
<logger name="org.springframework.web.servlet.PageNotFound" level="ERROR">
...
</logger>
类似地,您将使用log4j2
<Logger name="org.springframework.web.servlet.PageNotFound" level="ERROR">
...
</Logger>