gpt4 book ai didi

java - 未在 Java 中使用 log4j 更新/创建日志文件

转载 作者:行者123 更新时间:2023-11-30 06:28:31 25 4
gpt4 key购买 nike

我正在尝试使用 Java 中的 log4j 捕获日志。可执行文件在 linux 环境中,它显示日志消息,但是,它没有写入日志文件。我正在使用 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 name="LocalFileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logs/error.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="500KB" />
<param name="maxBackupIndex" value="1" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] - %m%n"/>
</layout>
</appender>

<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.SimpleLayout"/>
</appender>

<root>
<priority value ="Debug" />
<appender-ref ref="console" />
</root>
</log4j:configuration>

我不清楚java程序是如何知道xml文件所在位置的。我认为这就是问题所在。而且,这就是我在代码中设置的方式,

log = Logger.getLogger(MyClass.class);

BasicConfigurator.configure();

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

您可以将 log4j.xml 文件放在应用程序的类路径中,log4j 会在您第一次使用 log4j 时自动找到它并进行 self 配置。

但是,通过调用 BasicConfigurator.configure(),您将撤消 XML 文件完成的任何配置 - 因为这仅为根记录器设置了一个控制台附加程序。

使用 -Dlog4j.debug 运行你的 java 程序,让 log4j 在启动时输出一堆关于它在哪里寻找配置文件的信息。

关于java - 未在 Java 中使用 log4j 更新/创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466353/

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