gpt4 book ai didi

java - 如何避免记录 jersey WebApplicationException?

转载 作者:搜寻专家 更新时间:2023-10-31 20:34:41 24 4
gpt4 key购买 nike

使用 jersey,我抛出一个带有 503 的 WebApplicationException,表明我的服务不可用(因为某些下游服务不可用)。

发生这种情况时,我会得到如下所示的日志记录,其中包含巨大的堆栈跟踪。

[exec] SEVERE: Mapped exception to response: 503 (Service Unavailable)
[exec] javax.ws.rs.WebApplicationException
...

我真的不想要这个日志记录,因为它实际上最终会因为太多的日志记录而占用服务器的线程。例如,我发现许多线程卡在下面。有没有办法告诉 Jersey 不要记录任何东西,或者至少不记录堆栈跟踪?请注意,我确实希望记录其他错误代码,例如 500。只是不是 503。

at java.util.logging.StreamHandler.publish(StreamHandler.java:174)
- waiting to lock <0x00000000c30ef5e0> (a java.util.logging.ConsoleHandler)
at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:88)
at java.util.logging.Logger.log(Logger.java:478)
at java.util.logging.Logger.doLog(Logger.java:500)
at java.util.logging.Logger.log(Logger.java:589)
at com.sun.jersey.spi.container.ContainerResponse.logException(ContainerResponse.java:509)
at com.sun.jersey.spi.container.ContainerResponse.onException(ContainerResponse.java:487)
at com.sun.jersey.spi.container.ContainerResponse.mapWebApplicationException(ContainerResponse.java:421)
at com.sun.jersey.spi.container.ContainerResponse.mapMappableContainerException(ContainerResponse.java:399)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1418)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1363)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1353)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:414)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

最佳答案

对我有用的是简单地关闭该类的所有日志记录。 SLF4J 提供了一个“OFF”级别,它禁止所有日志记录。

在我的 Dropwizard 配置中:

loggers:
"com.sun.jersey.spi.container.ContainerResponse": OFF

也许这不是最优雅的解决方案,但我无法再处理那些污染我的日志的堆栈跟踪。

关于java - 如何避免记录 jersey WebApplicationException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20088628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com