使用log4j2,是否可以为appender分配特定级别?

时间:2015-03-19 11:44:48

标签: logging log4j log4j2 appender

使用log4j2,我想在mongodb中设置最大持久性级别,与记录器级别和全局配置级别无关。

请注意NoSql name="databaseAppender" 级别="信息" 它不能正常工作

<?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>

1 个答案:

答案 0 :(得分:2)

您可以在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