log4j2Filter⽤法详解
主要说下组合过滤器 CompositeFilter ,⽐较常⽤
<Filters>是组合过滤器额标签,它包含的⼦标签是具体的过滤器,这三个具体过滤器分别是⽇志等级过滤器,正则表达式过滤器和时间过滤器。
需要说明的是onMatch和onMismatch可以选择的值及其含义。可选的值分别是,ACCEPT, DENY, NEUTRAL,ACCEP和DENY⽐较好理解就是接受和拒绝的意思,在使⽤单个过滤器的时候,⼀般就是使⽤这两个值。
但是在组合过滤器中,如果⽤接受ACCEPT的话,⽇志信息就会直接写⼊⽇志⽂件,后续的过滤器不再进⾏过滤。--- 有点像switch case break; 直接截断了不会往下判断了。
在组合过滤器中,接受使⽤NEUTRAL(中⽴),被第⼀个过滤器接受的⽇志信息,会继续⽤后⾯的过滤器进⾏过滤,只有符合所有过滤器条件的⽇志信息,才会被最终写⼊⽇志⽂件。 --- 也就是层层过滤的意思,要都满⾜条件才能写⼊⽇志
例⼦1
<!-- 所要过滤的内容必须是⽇志内容详情,前⾯的包名不算  -->
log4j2不打印日志<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>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。