我们正在分发一个应用程序,该应用程序作为一组 WAR 文件部署在各个客户站点的各种 WebLogic 服务器(9、10 和 11)中。这些应用程序使用 commons-logging 和 log4j。除了在我们的应用程序没有生成日志的特定站点之外,它在任何地方都可以完美运行。该站点位于 11g 上,并安装了许多其他 Oracle 软件(BPEL、OSB 等)
在我们的代码中,我们使用:
public class Foo {
private final static Log log = LogFactory.getLog(Foo.class);
public void bar () {
log.trace("bar called");
...
由于我们想让客户调整他们的日志配置,我们在服务器 CLASSPATH 中有一个配置文件夹:
CLASSPATH=/opt/app/domain_foo/foo_config/:....
在该文件夹中,有两个日志文件 commons-logging.properties:
org.apache.commons.logging.Log org.apache.commons.logging.impl.Log4JLogger
和 log4j.properties:(这是一个具有相同问题的简化文件,实际文件包含 5 个具有各种参数的记录器)
log4j.rootLogger=INFO, fileApp
# File appender
log4j.appender.fileApp=org.apache.log4j.RollingFileAppender
log4j.appender.fileApp.file=fooapp.log
log4j.appender.fileApp.maxFileSize=10240KB
log4j.appender.fileApp.maxBackupIndex=5
log4j.appender.fileApp.append=true
log4j.appender.fileApp.layout=org.apache.log4j.PatternLayout
log4j.appender.fileApp.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p %-70.70C %m%n
log4j.logger.be.foo=DEBUG
文件 fooapp.log 已创建(因此它能够找到属性文件)但为空。我试图检查 Weblogic 中的日志设置,但它们在工作和不工作的服务器上似乎是相同的。我将 CLASSPATH 复制到我的服务器,它仍然可以正常工作。
我真的不知道该去哪里找了。有任何想法吗 ?