gpt4 book ai didi

java - 如何让 Log4j 使用标准输出?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:05:33 25 4
gpt4 key购买 nike

我目前正在为调试目的而在一些代码中使用 log4j。我一直在使用 java -jar test.jar | 运行我的代码tee file.txt 以记录到一个文件,但现在我希望能够在它仍在运行时切换我正在记录的文件,这是 tee 无法做到的。我现在正在做这个

private static final Logger log = LoggerFactory.getLogger(Test.class);

public void main() {
File file = new File(/path/to/file);
System.setOut(new PrintStream(file));
System.out.println("hello world"); //This works.
log.info("hello world"); //this doesn't.

出于某种原因,Logger 输出不会转到我的文件,而是转到我的控制台,但是 println() 工作正常。有谁知道为什么会发生这种情况以及如何解决这个问题?

谢谢。

编辑:这是我的 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="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<!--<param name="ConversionPattern" value="%d %-5p [%c] %m%n" />-->
<param name="ConversionPattern" value="%d %-5p [%c:%L] %m%n" />
</layout>
</appender>
<logger name="com.company">
<level value="trace" />
</logger>
<logger name="org.springframework">
<level value="debug" />
</logger>
<logger name="com.company.Selenium">
<level value="debug" />
</logger>
<logger name="org.springframework">
<level value="warn" />
</logger>
<root>
<priority value="warn" />
<appender-ref ref="console" />
</root>
</log4j:configuration>

另外,当我运行我的项目时出现以下错误

log4j:WARN No appenders could be found for logger (org.eclipse.jetty.util.log).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

最佳答案

请将其添加到您的 log4j.properties 文件中

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

关于java - 如何让 Log4j 使用标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26791074/

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