StringMatchFilter |
如果格式化后(即:最终)的日志信息中包含${指定的字符串} ,则onMatch,否则onMismatch即: () ? onMatch : onMismatch;
|
是 |
LevelRangeFilter |
若${maxLevel} <= 日志级别 <= ${minLevel} , 则onMatch,否则onMismatch如: 即为只记录日志info及warn级别的日志。 |
是 |
RegexFilter |
如果日志信息匹配${指定的正则表达式} ,则onMatch,否则onMismatch注:可通过useRawMsg属性来控制这个日志信息是格式化处理后(即:最终)的日志信息,还是格式化处理前(即:代码中输入)的日志信息。 |
是 |
ThresholdFilter |
若日志级别 >= ${指定的日志级别} , 则onMatch,否则onMismatch |
是 |
LevelMatchFilter |
如果日志级别等于${指定的日志级别} ,则onMatch,否则onMismatch |
是 |
ThreadContextMapFilter |
通过context(可以理解为一个Map)中对应的key-value值进行过滤 注:上下文默认是ThreadContext,也可以自定义使用ContextDataInjectorFactory配置ContextDataInjector来指定。 |
是 |
DynamicThresholdFilte r |
若上下文中包含指定的key,则触发DynamicThresholdFilter生效;若该key对应的value值等于任意一个我们指定的值,那么针对本条日志,可记录日志级别的约束下限调整为指定的级别 注:上下文默认是ThreadContext,也可以自定义使用ContextDataInjectorFactory配置ContextDataInjector来指定。 示例说明: <DynamicThresholdFilter key="loginRole" defaultThreshold="ERROR" onMatch="ACCEPT" onMismatch="NEUTRAL"><KeyValuePair key="admin" value="DEBUG"/><KeyValuePair key="user" value="warn"/></DynamicThresholdFilter> 配置,有以下情况:情况一:存在键loginRole,假设从上下文(可以理解为一个Map)中取出来的对应的值为user,那么此时,对于日志级别大于等于warn的日志,会走onMatch;其它的日志级别走onMismatch。 情况二:存在键loginRole,假设从context(可以理解为一个Map)中取出来的对应的值为admin,那么此时,对于日志级别大于等于debug的日志,会走onMatch;其它的日志级别走onMismatch。 情况三:【上下文(可以理解为一个Map)中,不存在键loginRole】或【存在键loginRole,但从日志上下文中取出来的值(假设)为abc, 没有对应的KeyValuePair配置】,那么此时 <DynamicThresholdFilter key="userRole" defaultThreshold="AAA" onMatch="BBB" onMismatch="CCC"> 等价于<LevelMatchFilter level="AAA" onMatch="BBB" onMismatch="CCC"> 。 |
是 |
CompositeFilter |
组合过滤器,即:按照xml配置中的配置,一个过滤器一个过滤器的走,如果在这过程中,任意一个过滤器ACCEPT或DENY了,那么就不会往后走了,直接返回对应的结果。 | 是 |
TimeFilter | 如果记录日志时的当前时间落在每天指定的时间范围[start, end]内 ,则onMatch,否则onMismatch如: <TimeFilter start="05:00:00" end="05:30:00" onMatch="ACCEPT" onMismatch="DENY"/> 。 |
否 |
ScriptFilter | 是否匹配取决于指定的脚本返回值是否为true | 否 |
DenyAllFilter | This filter causes all logging events to be dropped | 否 |
BurstFilter | 对低于或等于${指定日志级别}的日志 ,进行限流控制 |
否 |
NoMarkerFilter | 如果从对应事件对象获取(LogEvent#getMarker)到的marker为null, 则onMatch,否则onMismatch | 否 |
MarkerFilter | 如果从对应事件对象获取(LogEvent#getMarker)到的marker的name值为等于${指定的值} , 则onMatch,否则onMismatch |
否 |
MapFilter | The MapFilter allows filtering against data elements that are in a MapMessage. 注:需要使用.进行记录,且记录.日志,才会生效。 注:因为暂时不兼容Slf4j这里不多作说明 |
否 |
StructuredDataFilter | The StructuredDataFilter is a MapFilter that also allows filtering on the event id, type and message. 注:需要使用.进行记录,且记录.日志,才会生效。 注:因为暂时不兼容Slf4j这里不多作说明 |
否 |
… | … | … |