log4j2 Filter用法详解

主要说下组合过滤器 CompositeFilter ,比较常用
<Filters> 是组合过滤器额标签,它包含的子标签是具体的过滤器,这三个具体过滤器分别是日志等级过滤器正则表达式过滤器时间过滤器
需要说明的是onMatch和onMismatch可以选择的值及其含义。可选的值分别是,ACCEPT, DENY, NEUTRAL,ACCEP和DENY比较好理解就是接受和拒绝的意思,在使用单个过滤器的时候,一般就是使用这两个值。
但是在组合过滤器中,如果用接受ACCEPT的话,日志信息就会直接写入日志文件,后续的过滤器不再进行过滤。--- 有点像switch case break; 直接截断了 不会往下判断了。
在组合过滤器中,接受使用NEUTRAL(中立),被第一个过滤器接受的日志信息,会继续用后面的过滤器进行过滤,只有符合所有过滤器条件的日志信息,才会被最终写入日志文件。 --- 也就是层层过滤的意思,要都满足条件才能写入日志

例子1
<!-- 所要过滤的内容必须是日志内容详情,前面的包名不算  -->
<Filters>
	        <ThresholdFilter level="TRACE" onMatch="NEUTRAL" onMismatch="DENY"/>
	        <RegexFilter regex=".* test .*" onMatch="NEUTRAL" onMismatch="DENY"/>
                <TimeFilter start="05:00:00" end="05:30:00" onMatch=" NEUTRAL " onMismatch="DENY"/>	    
</Filters>    

例子2 意思是日志内存包含 HiveSql 或 hive lines 或 sql_type 或  => 的INFO及其INFO以下级别的日志
  <Filters>
                
                <ThresholdFilter level="INFO" onMatch="NEUTRAL" onMismatch="DENY"/>
                <RegexFilter regex=".*(HiveSql|hive lines|sql_type).*" onMatch="NEUTRAL" onMismatch="DENY"/>
                <RegexFilter regex=".*=>.*" onMatch="NEUTRAL" onMismatch="DENY"/>
</Filters>
原文地址:https://www.cnblogs.com/jiangxiaoxian/p/10582269.html