gpt4 book ai didi

java - 需要帮助在 Windows(Java、NetBeans)上的 Tomcat 中为 log4j 运行定制的 glass/jar

转载 作者:行者123 更新时间:2023-11-28 22:33:02 25 4
gpt4 key购买 nike

我正在尝试实现为 log4j 编写的自定义类,并将其与 Windows 上的 Tomcat5 结合使用。现在,请记住 tomcat5 和 log4j 都已正确安装和配置并且工作正常。但是,添加此类不会产生预期的结果,这正是本文的重点。我从以下链接发现了此类:http://sysgears.com/articles/how-to-redirect-stdout-and-stderr-writing-to-a-log4j-appender#comment-749 ).

我编写了类并将以下内容放在类声明之上:

package LoggingOutputStream;

import java.io.PrintStream;
import java.io.OutputStream;
import java.io.IOException;
import org.apache.log4j.Logger;
import org.apache.log4j.Level;

然后,我就编译成功了。然后链接声明要使用该类,写:

System.setErr(new PrintStream(new LoggingOutputStream(
System.err, Logger.getLogger("outLog"), Level.ERROR)));

这是我写的:

import java.io.PrintStream;
import LoggingOutputStream.LoggingOutputStream;
import org.apache.log4j.Logger;
import org.apache.log4j.Level;

public class UseLoggingOutputStream {

public void SetErr() {
System.setErr(new PrintStream(new LoggingOutputStream(Logger.getLogger("outLog"), Level.ERROR)));
}
}

一个重要的细节是 LoggingOutPutstream 构造函数接受 2 个输入,但链接中的作者使用 3 个输入调用它,这会产生错误。我删除了“System.err”参数,文件编译成功。

然后我将这两个类打包,并将 jar 文件复制到 tomcat5/common/lib 文件夹中。最后,我使用链接中指定的内容修改了 log4j.properties 文件:

log4j.logger.outLog=error, out_log

log4j.appender.out_log=org.apache.log4j.RollingFileAppender
log4j.appender.out_log.file=/logs/error.log
log4j.appender.out_log.MaxFileSize=10MB
log4j.appender.out_log.threshold=error

我启动了 Apache Tomcat5 服务,但在日志文件夹中没有看到 error.log。我错过了什么吗?有没有其他人让这个成功地工作?

如果有任何建议,我将不胜感激。谢谢。

最佳答案

问题:您使用的是绝对路径/logs/error.log

您需要找到您的 Tomcat 目录。简单如下:log4j.appender.out_log.file=${catalina.home}/logs/error.log

关于java - 需要帮助在 Windows(Java、NetBeans)上的 Tomcat 中为 log4j 运行定制的 glass/jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5782226/

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