且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Log4j 2 官方文档》Configuring Filters

更新时间:2022-08-15 08:02:40

配置过滤器

Log4j允许在下面4个地方中任意一个指定过滤器:

  1. 与追加器,记录器和属性元素处于同一级别。 这些过滤器可以在事件传递到LoggerConfig之前接受或拒绝事件。
  2. 在记录器元素中。 这些过滤器可以接受或拒绝特定记录器的事件。
  3. 在一个appender元素。 这些过滤器可以防止或导致事件由追加器处理。
  4. 在追加器引用元素中。 这些过滤器用于确定记录器是否应将事件路由到追加器。

虽然只能配置单个 filter元素,但该元素可以是代表CompositeFilter的 filters元素。 filters 元素允许在其内配置任何数量的filter元素。下面的例子表示如何在ConsoleAppender上配置多个过滤器。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" name="XMLConfigTest" packages="org.apache.logging.log4j.test">
  <Properties>
    <Property name="filename">target/test.log</Property>
  </Properties>
  <ThresholdFilter level="trace"/>

  <Appenders>
    <Console name="STDOUT">
      <PatternLayout pattern="%m MDC%X%n"/>
    </Console>
    <Console name="FLOW">
      <!-- this pattern outputs class name and line number -->
      <PatternLayout pattern="%C{1}.%M %m %ex%n"/>
      <filters>
        <MarkerFilter marker="FLOW" onMatch="ACCEPT" onMismatch="NEUTRAL"/>
        <MarkerFilter marker="EXCEPTION" onMatch="ACCEPT" onMismatch="DENY"/>
      </filters>
    </Console>
    <File name="File" fileName="${filename}">
      <PatternLayout>
        <pattern>%d %p %C{1.} [%t] %m%n</pattern>
      </PatternLayout>
    </File>
    <List name="List">
    </List>
  </Appenders>

  <Loggers>
    <Logger name="org.apache.logging.log4j.test1" level="debug" additivity="false">
      <ThreadContextMapFilter>
        <KeyValuePair key="test" value="123"/>
      </ThreadContextMapFilter>
      <AppenderRef ref="STDOUT"/>
    </Logger>

    <Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false">
      <Property name="user">${sys:user.name}</Property>
      <AppenderRef ref="File">
        <ThreadContextMapFilter>
          <KeyValuePair key="test" value="123"/>
        </ThreadContextMapFilter>
      </AppenderRef>
      <AppenderRef ref="STDOUT" level="error"/>
    </Logger>

    <Root level="trace">
      <AppenderRef ref="List"/>
    </Root>
  </Loggers>

</Configuration>

转载自 并发编程网 - ifeve.com