使用 log4j2,是否可以将特定级别分配给附加程序?

Using log4j2, is it possible to assign a specific level to a appender?

使用 log4j2,我想在 mongodb 中设置最大持久级别,独立于记录器级别和全局配置级别。

请注意NoSql name="databaseAppender" level="info"它不起作用

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="trace" monitorInterval="30">

  <Appenders>
    <File name="log" fileName="target/test.log" append="false">
    </File>  
    <NoSql name="databaseAppender" level="info">     
      <MongoDb  databaseName="mydb" collectionName="log" server="127.0.0.1" port="28001"
                factoryClassName="MongoUtil"
                factoryMethodName="getMongoDB"/>
    </NoSql>
  </Appenders>

  <Loggers>
    <Root level="trace">
      <AppenderRef ref="log"/>
      <AppenderRef ref="databaseAppender"/>
    </Root>        
  </Loggers>
</Configuration>

您可以在 appender-ref 上设置一个级别:

<Loggers>
    <Root level="trace">
      <AppenderRef ref="log"/>
      <AppenderRef ref="databaseAppender" level="info" />
    </Root>        
</Loggers>

如果你想做更复杂的事情,比如只有有INFO级别的消息(没有TRACE/DEBUG,没有WARN/ERROR/FATAL)去某个appender,那么你可以使用多个 threshold filters.

的组合