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>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • logback详解 说明:下面内容从网上搜集整理而来 与log4j对比 更快的执行速度: 基于我们先前在log4j...
    亿万年星空阅读 3,087评论 1 1
  • 常用配置指令说明 1. ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它...
    小僧有礼了阅读 4,553评论 0 5
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,446评论 0 9
  • 本文转自云栖社区-点击可以查看原文 1 基本介绍 每一个Java程序员都知道日志对于任何一个Java应用程序,尤其...
    小孩真笨阅读 4,505评论 0 0
  • 感谢让我蹭车的90后货车司机, 虽然走走停停, 还是少走了几公里。 辛苦的长途车, 二十多天的离家路。 说实话, ...
    痞子杜甫阅读 353评论 0 0