log4j2过滤器篇

简单来说,log4j2中的过滤器主要是对日志的输出进行过滤,符合条件的日志可以被当前过滤器通过,进入到后续的处理;不符合条件的日志应该被忽略,不做处理。这是比较常见的使用方式,文末的相关文章里对于过滤器的使用作出了较为详细的说明,这里主要总结一下个人的实践感悟。

MapFilter

MapFilter主要是对MapMessage(log4j2框架中的类)进行过滤,一般的日志信息,此过滤器不会处理,举例来说,专门处理类似以下方法中的参数。

info(Message msg);

MarkFilter

分析与MapFilter几乎一致。对于日志信息中的标记进行过滤,看一下Logger类的info()方法,如下:

void info(Marker marker, String message);

特定的Marker标记的信息可以通过过滤,否则不会通过过滤(包括没有使用Marker)。

RegexFilter

符合正则表达式的日志信息才会通过过滤器,看如下appender:

      <File name="regexFilterFile" fileName="./${module_name}/app.log">
          <!--日志信息中含有test单词将会通过过滤 -->
          <RegexFilter regex=".* test .*" onMatch="ACCEPT" onMismatch="DENY"/>
      </File>

正则表达式.* test .*表示若干个任意字符(排除若干个,这里不做说明) + 空格 + test单词 + 空格 + 若干个任意字符。

例如: i an a test是不符合要求的,因为test后面没有空格。


相关文章

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容