在我的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没有正确设置,但我无法弄清楚原因。任何人都可以帮我找出问题所在。
提前致谢, 跌
答案 0 :(得分:1)
这可能是权限问题 - 请检查$ {catalina.home} / logs目录的所有者和权限。
答案 1 :(得分:0)
这取决于您使用的服务器。 是Tomcat吗?它是在Windows和Linux上的相同版本吗?
答案 2 :(得分:0)
检查您的机器中是否设置了CATALINA_HOME环境变量。 你可以输入'echo $ CATALINA_HOME'来在linux中查看。