gpt4 book ai didi

java - Log4J:将 Stderr 消息重定向到主日志文件

转载 作者:行者123 更新时间:2023-11-30 10:34:23 24 4
gpt4 key购买 nike

我有一个 cmd 行工具,我们很快就会部署给客户。我在使用的框架的 cmd 窗口中出现了一条令人讨厌的 StdErr 消息,我正在努力使用 Log4J 将该消息重定向到我的日志文件。

这是我的 log4j.xml 文件:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration debug="false" xmlns:log4j='http://jakarta.apache.org/log4j/'>

<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="500MB" />
<param name="maxBackupIndex" value="5" />
<param name="file" value="test.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>

<root>
<level value="DEBUG" />
<appender-ref ref="file" />
</root>

</log4j:configuration>

我用谷歌搜索了一下,找不到任何人跟我有类似的情况。

我已经使用以下行重定向了它,但我更愿意使用 log4j 重定向它,这样一切都在同一个文件中

File file = new File("error.log");
FileOutputStream fos = new FileOutputStream(file);
PrintStream ps = new PrintStream(fos);
System.setErr(ps);

我无法使用 JBoss 或 tomcat 设置重定向它,因为我没有使用容器。它是直接在 CMD 行上的 JAR。

注意:我希望 STDOUT 仍然转到 CMD 窗口,因为那是用户的菜单系统。

最佳答案

我在这里发现了这个问题,接受的答案是我需要的答案: log4j redirect stdout to DailyRollingFileAppender

结果我试图找出一种方法在 XML 配置中修复它,而实际上我应该尝试通过使用 System.setErr() 重定向 stdErr 来修复代码。

关于java - Log4J:将 Stderr 消息重定向到主日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41682224/

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