Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Log4j 当配置为从信息级别获取时,为什么我的记录器中也会收到警告消息_Log4j - Fatal编程技术网

Log4j 当配置为从信息级别获取时,为什么我的记录器中也会收到警告消息

Log4j 当配置为从信息级别获取时,为什么我的记录器中也会收到警告消息,log4j,Log4j,我有这个log4j.xml文件,它应该只从信息级别记录 但我的日志中也有警告级别 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender class="org.apache

我有这个log4j.xml文件,它应该只从信息级别记录 但我的日志中也有警告级别

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
   <appender class="org.apache.log4j.RollingFileAppender" name="FILE">
      <param value="D:\\RAM\\tst.log" name="File" />
      <param value="10" name="MaxBackupIndex" />
      <param value="200MB" name="MaxFileSize" />
      <layout class="org.apache.log4j.PatternLayout">
         <param value="%d[%t] %-5p(%F:&lt;%M&gt;:%L)- %m%n" name="ConversionPattern" />
      </layout>
   </appender>

   <appender class="com.Log4JCustomAppender" name="CUSTAPPEN">
    <layout class="org.apache.log4j.PatternLayout">
         <param value="%d[%t] %-5p(%F:&lt;%M&gt;:%L)- %m%n" name="ConversionPattern" />
      </layout>
      </appender>

   <appender class="org.apache.log4j.AsyncAppender" name="ASYNC">
     <param name="Blocking" value="false"/>
     <param name="BufferSize" value="1000"/>
      <appender-ref ref="CUSTAPPEN" />
   </appender>

   <root>
      <level value="INFO" />
      <appender-ref ref="FILE" />
      <appender-ref ref="ASYNC" />
   </root>
</log4j:configuration>

这是我在自定义Appender和RollingFileAppender中得到的输出

LOgged One is 2013-06-23 01:05:55,954[main] FATAL(Hi.java:<main>:14)- This is a fatal Message

LOgged One is 2013-06-23 01:05:55,965[main] WARN (Hi.java:<main>:15)- This is a warn Message
记录的消息是2013-06-23 01:05:55954[main]致命的(Hi.java::14)-这是一条致命消息
记录的一条是2013-06-23 01:05:55965[main]WARN(Hi.java::15)-这是一条警告消息

请告诉我如何避免这种情况。

这种行为是正常的。将记录器设置为特定级别值表示您需要该级别以及以上所有级别

级别为:

  • 痕迹
  • 调试
  • 信息
  • 警告
  • 错误
  • 致命的
如果您只需要
INFO
级别,则必须在附加器上使用过滤器:

<filter type="org.apache.log4j.varia.LevelMatchFilter">
  <acceptOnMatch value="true" />
  <levelToMatch  value="INFO" />
</filter>
<filter type="org.apache.log4j.varia.DenyAllFilter" />


我的错误,非常抱歉浪费了其他人的时间,我认为这是信息之前的警告,感谢澄清,并且筛选器匹配非常有用,再次感谢。那么我应该在CustomAppender中还是在AsyncAppender中应用此筛选器?请仅说明您的AsyncAppender。在CustomAppender上设置筛选器应该会得到相同的结果,但是如果我们可以更早地进行筛选,那么让AsyncAppender转发到CustomAppender是没有用的。感谢您的回复,我尝试将此筛选器设置为INFO匹配,它只提供信息消息,而不提供错误、致命或警告,这正常吗?是,因为它明确接受信息并拒绝所有其他级别。