java – 忽略第三方库的重复异常消息的记录
我需要在日志中处理特定exeptions的重复.
我使用slf4j和logback登录我的应用程序.我使用一些外部服务(DB,apache kafka,第三方库等).当连接丢失到这样的服务时,我得到例外,例如 [kafka-producer-network-thread | producer-1] WARN o.a.kafka.common.network.Selector - Error in I/O with localhost/127.0.0.1 java.net.ConnectException: Connection refused: no further information at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_45] at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[na:1.8.0_45] at org.apache.kafka.common.network.Selector.poll(Selector.java:238) ~[kafka-clients-0.8.2.0.jar:na] at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:192) [kafka-clients-0.8.2.0.jar:na] at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191) [kafka-clients-0.8.2.0.jar:na] at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122) [kafka-clients-0.8.2.0.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45] 问题是我每秒都收到这条消息.此异常消息将充斥我的日志文件,因此我将在N小时内在日志文件中有几个GB. 我希望每1-5分钟有一次关于此异常的日志消息.有没有办法忽略日志文件中的异常重复? 可能的解决方案: >忽略特定包和类的所有日志. 解决方法
我认为您最好的选择就是扩展您已找到的
DuplicateMessageFilter.它不是最终的,它很容易:
>使用基于classname或exceptionType的过滤方法或您想要根据其做出初步决定的任何其他内容来实现新的TurboFilter 您可用的参数: public FilterReply decide(Marker marker,Logger logger,Level level,String format,Object[] params,Throwable t) { 包括Throwable和Logger. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |