[英]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.