log4j在特定的Weblogic服务器上不生成任何输出

时间:2012-09-10 20:27:53

标签: log4j weblogic apache-commons-logging

我们正在各个客户的站点上分发在各种WebLogic服务器(9,10和11)中部署为一堆WAR文件的应用程序。这些应用程序使用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复制到我的服务器,它仍然正常工作。

我真的不知道在哪里看。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这有点棘手,但答案是在名为:APPLICATIONS_DIRECTORY的环境中,它应该指向APPLICATIONS_DIRECTORY / fooapp.log应该是的路径。您可以从System.getenv(“APPLICATIONS_DIRECTORY”);

获取目录位置