繁体   English   中英

Log4j未将日志写入文件

[英]Log4j is not writing the log into the file

的log4j.xml

  <appender name="U_R_A" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="Threshold" value="fatal" />
    <param name="Append" value="true" />
    <param name="File" value="/logs/log_file.log" />
    <param name="DatePattern" value="'.'yyyy-MM-dd-HH" />
    <layout class="org.apache.log4j.PatternLayout" />
   </appender>

  <logger name="U_Q_R" additivity="false">
    <!-- Overridding from fatal to error -->
    <level value="ERROR" />
    <appender-ref ref="U_R_A" />
  </logger>

Main.java

public class Main{
  private static Logger logger = Logger.getLogger("U_Q_R");
  public static void main(String[] args) {
    DOMConfigurator.configure("log4j.xml"); 
    logger.error("Some error happened!!");
  }
}

Log4j没有将错误写入文件log_file.log中 如果将Threshold更改为error ,则它将内容写入文件中。 请帮助我理解。

记录器的级别为ERROR ,不会覆盖附加程序的阈值。

记录器接受>= ERROR日志消息,因为您已将级别定义为ERROR 然后,您的记录器仅定义了一个带有fatal阈值的附加程序,这意味着该附加程序将处理级别>=fatal日志。 这就是为什么error级别日志不会保存在日志文件中的原因。

当您更改threshold <= logger's level ,记录器接受的所有日志将由附加程序处理。 因此,如果将阈值更改为error它将“起作用”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM