【发布时间】:2011-12-01 12:26:22
【问题描述】:
我使用 weblogic 在服务器上部署了两个应用程序。我为每个应用程序创建了单独的属性文件和配置 servlet。但是出现的问题是记录器附加到最新部署的应用程序的日志文件中。代码在 tomcat 上运行良好,但是当部署在 weblogic 服务器上时,它的行为就像只有一个实例在运行,而且也是最新的。
我放入 WEB-INF 的 log4j.properties 文件:
log4j.rootLogger=INFO, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=C:abc.log
log4j.appender.R.MaxFileSize=10MB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.Append=true
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %-5p %c (%F:%L) - %m%n
我已将 log4j-1.2.14.jar 放在所有库所在的 lib 文件夹中。
在 servlet init() 方法中初始化它:
public void init() throws ServletException {
logger.info("Servlet...................");
super.init();
String prefix = getServletContext().getRealPath("/");
String log4j = getServletContext().getInitParameter"log4jConfig");
if (log4j != null) {
PropertyConfigurator.configure(prefix + log4j);
}
}
和 web.xml 条目是:
<context-param>
<param-name>log4jConfig</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
【问题讨论】:
-
我至少可以看到 2 个错别字。属性文件中的
File=C:abc.log缺少斜杠,代码中的getServletContext().getInitParameter"log4jConfig")缺少(