Log4j2-12-log4j2 过滤器 Filters ThresholdFilter 入门例子

本文详细介绍了Log4j2.x中的过滤器功能,包括如何评估日志事件,不同级别的应用,以及通过XML配置示例展示ThresholdFilter的工作原理。
摘要由CSDN通过智能技术生成

过滤器 Filters

过滤器允许对日志事件进行评估,以确定是否或如何发布它们。

Filter将在其过滤器方法之一上被调用,并将返回一个Result,这是一个Enum,具有3个值之一- ACCEPT, DENY或NEUTRAL。

过滤器可以配置在以下四个位置之一:

  1. 上下文范围的过滤器直接在配置中配置。被这些筛选器拒绝的事件将不会传递给日志记录器进行进一步处理。

一旦事件被上下文范围的过滤器接受,它将不会被任何其他上下文范围的过滤器评估,也不会使用记录器的级别来过滤事件。然而,该事件将由记录器和Appender过滤器评估。

  1. 记录器过滤器是在指定的记录器上配置的。这些在上下文范围过滤器和日志记录器的日志级别之后进行评估。

被这些过滤器拒绝的事件将被丢弃,并且无论添加性设置如何,事件都不会传递给父Logger。

  1. Appender过滤器用于确定是否应该由特定的Appender处理事件的格式化和发布。

  2. Appender引用过滤器用于确定Logger是否应该将事件路由到Appender。

ThresholdFilter

如果LogEvent中的级别与配置的级别相同或更具体,则此过滤器返回onMatch结果,否则返回onMismatch值。

例如,如果ThresholdFilter配置了ERROR级别,并且LogEvent包含DEBUG级别,那么onMismatch值将被返回,因为ERROR事件比DEBUG事件更具体。

例子

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp">
  <Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log"
                 filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
      <ThresholdFilter level="TRACE" onMatch="ACCEPT" onMismatch="DENY"/>
      <PatternLayout>
        <pattern>%d %p %c{1.} [%t] %m%n</pattern>
      </PatternLayout>
      <TimeBasedTriggeringPolicy />
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
</Configuration>

在这里插入图片描述

参考资料

https://logging.apache.org/log4j/2.x/manual/filters.html

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值