gpt4 book ai didi

java - Log4j 没有将日志写入文件

转载 作者:行者123 更新时间:2023-12-01 12:25:55 24 4
gpt4 key购买 nike

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。如果我将阈值更改为错误,则它将内容写入文件。请帮助我理解。

最佳答案

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

使用 >= ERROR 记录消息将被记录器接受,因为您已将级别定义为 ERROR 。那么你的记录器只定义了一个附加器,阈值 fatal ,这意味着追加器将处理级别为 >=fatal 的日志。 。这就是为什么error级别日志不会保存在您的日志文件中。

当您更改 threshold <= logger's level 时,您的记录器接受的所有日志都将由附加程序处理。这就是为什么如果您将阈值更改为error,它就会“起作用”。 .

关于java - Log4j 没有将日志写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26335733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com