当前位置: 首页 > 知识库问答 >
问题:

使用log4j2,有可能给一个appender分配一个特定的级别吗?

宋高扬
2023-03-14

使用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>

共有1个答案

钦英发
2023-03-14

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

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

如果您想做更复杂的事情,例如只有INFO级别的消息(没有TRACE/DEBUG,没有WARN/ERROR/FATAL)转到某个appender,那么您可以使用多个阈值过滤器的组合。

 类似资料:
  • 我需要实现多个记录器和多个追加器。我的log4j2.xml如下所示: 现在,当我使用这个xml执行代码时,日志被写入最后一个日志文件commonres.log。我是Log4J的新手。如何只写入所需的日志文件? 编辑: 请帮忙。

  • 问题内容: 我在应用程序中使用log4j2。 我想要的是将要进行调试的所有内容都放入控制台,将要进行“信息”的所有内容都进入myapp.log,仅将“信息”的所有内容都进入“ myapp- audit.log”。 原因是,INFO主要由成功的数据修改组成(例如,“用户创建”,“用户更新”,“用户删除”等)。如果有效,则为数据修改的审核日志。 但是我不知道该怎么做。 如何仅获取“信息”以登录到“ m

  • 我正在为Android使用登录。我有两个追加器,一个写文件,另一个用于logcat。 我如何给每个附加器不同的级别?我希望logcat是跟踪和文件是信息。

  • 我使用Log4j2(v2.17.2)直接向kafka发送信息,并使用XML创建配置(正如许多文章提到的那样,XML可以处理更多的配置选项,而属性不能)。我的问题是,我的控制台中充满了不相关的信息日志行(例如): 我已经从programmetically-change-log-level-in-log4j2中试用了所有技术,没有对日志进行任何更改: 有人有运气从INFO中获得日志级别降低吗?我真的不

  • 我在linux服务器上的一个备份中遇到了一个问题,它以某种方式将文件的所有文件夹向下移动了一个级别,放入了一个同名的新文件夹。我想将所有文件返回到其原始位置。许多文件的名称中有空格,使事情复杂化。 原始目录结构: 目录结构不正确: 请注意,我不希望子文件夹中的文件移动到文件夹1中,但我确实希望子文件夹本身向上移动一级。 我尝试了一些类似的命令,基于这里一些相关的线程,但没有成功,而是尝试将文件移动

  • 下面是我使用的一些代码: 如何只打印信息日志?