log4j onMatch onMismatch

日志级别:  <!-- ALL < TRANCE < DEBUG < INFO < WARN < ERROR < FATAL < OFF-->
<ThresholdFilter level="INFO"  onMatch="" onMismatch=""/>

onMatch:意思是当前级别以及以上要怎么处理:ACCEPT 接收,  NEUTRAL 往后走   DENY拒绝

onMismatch:意思是当前级别(不包括当前级别)以下要怎么处理:ACCEPT 接收,  NEUTRAL 往后走   DENY拒绝

(总结:onMatch 是 >= 当前级别    onMismatch  是< 当前级别)

1:场景一:假如我们想要  INFO级别到ERROR级别之间的输出到控制台,其他的忽略,思路如下分析。

     经过分析也就是大于等于INFO级别的日志  往后走NEUTRAL进入下一个过滤器其他的拒绝 DENY。然后在下一个过滤器中,我让大于等于FATAL的拒绝DENY,小于的接受ACCEPT。

<ThresholdFilter level="INFO" onMatch="NEUTRAL " onMismatch="DENY"/>

<ThresholdFilter level="FATAL" onMatch="DENY" onMismatch="ACCEPT"/>

第二种方式实现:让小于FATAL的往后走,其他的拒绝,然后进入下一个过滤器。在下一个过滤器中,让大于等于INFO的接受其他的拒绝。

<ThresholdFilter level="FATAL" onMatch="DENY" onMismatch="NEUTRAL"/>

<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>

 

 

场景二:我需要info之后的日志,忽略掉比info级别小的日志。

这个更简单,直接大于等于info的接受,小于的拒绝。

大于等于:onMath="ACCEPT"    小于的 onMismatch="DENY"

<ThresholdFilter level="FATAL" onMatch="ACCEPT" onMismatch="DENY"/>

只要不是截取一个日志级别范围一个过滤器就够了,不需要流动NEUTRAL到第二个过滤器。只有在截取日志级别大于某个级别小于某个级别的时候,才需要两个过滤器。实现方式就是场景一描述的那样。看了这篇文章相信你能彻底掌握。

 

 

总结一遍:不要刻意在意 ACCEPT   NEUTRAL   DENY这三个词的意思,理解的核心在于:onMatch 是匹配到当前级别以及大于当前级别的日志怎么怎么样。onMismatch是当前级别以下的日志不包含当前级别你要怎么处理。无论是onMatch 还是onMismatch都有三个值。  是往后流动NEUTRAL  还是接受ACCEPT  或者是DENY

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我先森

鼓励一个吧,哈哈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值