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

不同的日志追加器对同一个 java 包使用不同的日志级别?

郎雪风
2023-03-14

以下是我的java logback配置:

<?xml version="1.0" encoding="UTF-8"?>
  <configuration>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
    <encoder charset="UTF-8">
        <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %msg%n></pattern>
    </encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <encoder charset="UTF-8">
        <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
        </pattern>
    </encoder>
</appender>
    <logger name="org.apache.zookeeper"  additivity="false">  
     <appender-ref ref="stdout"/>  
   </logger>
   <logger name="com.hazelcast"  additivity="false">  
      <appender-ref ref="stdout"/>  
 </logger>  
<root level="INFO">
    <appender-ref ref="FILE" />
</root>

我想在这里做的是:我有两个日志追加器:一个用于控制台,另一个用于日志文件;但是对于相同的java软件包(例如:组织.apache.zookeeper),我想使用两个不同的日志级别,INFO用于文件追加器和错误用于康多尔;但是我的日志配置优势无法正常工作。任何人都可以找出我的错误或一些解决方案吗?

共有2个答案

公西兴业
2023-03-14

你可以阻止它们:

    <filter class="ch.qos.logback.core.filter.EvaluatorFilter">  
        <evaluator>   
            <expression>logger.contains("zookeeper") || logger.contains("hazelcast")    </expression>  
        </evaluator>  
        <OnMismatch>ACCEPT</OnMismatch>  
        <OnMatch>DENY</OnMatch>  
    </filter>  
鲜于璞瑜
2023-03-14

由于每个Java包的日志级别只能全局定义,您可以使用ThresholdFilter在控制台appender中过滤ERROR以下的所有级别。

 类似资料:
  • 由于log4j的官方文档是一个断开的链接,而且入门指南对我没有帮助,所以我想知道如何使用文件而不是文件为同一个记录器使用两个具有不同日志级别的追加器。 例如,像这样:

  • 如何编写一个简单的log4j2.xml文件,将不同级别的日志放入不同的文件中? 例如,我们有错误日志,任何信息日志,我需要将所有错误日志消息推入一个日志文件,所有信息日志消息推入另一个文件。 我怎么做?

  • 我想做的很直截了当: 我只希望在控制台追加器上显示重要的消息,而我希望将详细的消息路由到文件追加器。 我还尝试向添加一个ThresholdFilter,但这也不能过滤它。

  • 下面,我有一个全局应用的日志回溯配置。 我想全局使日志记录级别错误,除了一个类。对于一个特定的类,我想使日志记录级别 INFO。我该怎么做?

  • 我的简单问题是:如果我有两个类似logger的语句。info()和记录器。error()在Java中(使用log4j),我希望将这两行的结果打印在两个单独的文件中。也就是说,记录器。信息(…)应该打印到一个文件,比如myLog。信息和记录器。错误(…)应该打印到myLog。错误文件。我正在使用滚动文件追加器执行此任务。另外,我只需要一个记录器对象来完成任务。有人可能会建议两个或多个不同的记录器,每

  • 我希望文件记录器以这样的方式配置日志类别'X' 记录器one在信息级别上记录“X”,在调试级别上记录其他东西 记录器在调试级别上有两个日志“x”