log4j在unix中记录到catalina.out而不是日志文件

时间:2009-08-07 05:04:16

标签: java log4j

在我的Web应用程序中,我通过在启动时加载的servlet中使用PropertyConfigurator.configure(filepath)函数来初始化我的Web应用程序中的日志记录。

String log4jfile = getInitParameter("log4j-init-file");
if (log4jfile != null) {
     String propfile = getServletContext().getRealPath(log4jfile);
     PropertyConfigurator.configure(propfile);

我已将 log4j.properties 文件放在 WEB_INF / classes 目录中,并将文件指定为

log4j.appender.rollingFile.File=${catalina.home}/logs/myapp.log

我的根记录器最初配置为:

log4j.rootLogger=DEBUG, rollingFile,console

(我相信console属性也会将语句记录到catalina.out中)

在Windows中,日志记录似乎正常,日志文件中出现了语句。

在unix中,我的日志记录语句被重定向到catalina.out而不是我的实际日志文件(其中只包含来自初始化servlet的日志)。所有后续日志都显示在catalina.out中。

这让我相信我的log4j没有正确设置,但我无法弄清楚原因。任何人都可以帮我找出问题所在。

提前致谢, 跌

3 个答案:

答案 0 :(得分:1)

这可能是权限问题 - 请检查$ {catalina.home} / logs目录的所有者和权限。

答案 1 :(得分:0)

这取决于您使用的服务器。 是Tomcat吗?它是在Windows和Linux上的相同版本吗?

答案 2 :(得分:0)

检查您的机器中是否设置了CATALINA_HOME环境变量。 你可以输入'echo $ CATALINA_HOME'来在linux中查看。