所有应用程序日志都进入相同的log4j日志文件

时间:2012-08-16 16:48:30

标签: maven log4j weblogic weblogic-10.x

(可能是共同发生的)但是在我们从Ant版本切换到Maven之后会出现这个问题。

(服务器是Weblogic 10.3.5)

我们有几个应用程序,每个应用程序都有自己的log4j.properties,每个应用程序都登录到自己的app.log。但是,在Maven构建之后,所有应用程序都将登录到一个日志文件中。我们部署的第一个应用程序似乎优先,而log4j只是写入该文件。

在Maven设置中,log4j.properties位于src/main/resources下。以下是我们log4j.properties之一的一个例子:

log4j.rootLogger=INFO, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=logs/stat-calc.log
log4j.appender.logfile.MaxFileSize=4096KB
log4j.appender.logfile.MaxBackupIndex=7
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

有没有人遇到过这个问题?

1 个答案:

答案 0 :(得分:0)

这可能是WebLogic类加载问题。我们过去通过添加META-INF/weblogic-application.xml文件来解决这个问题,其格式如下:

<?xml version='1.0' encoding='UTF-8'?>
<weblogic-application xmlns="http://www.bea.com/ns/weblogic/100"   
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <prefer-application-packages>
        <package-name>org.apache.log4j.*</package-name>
    </prefer-application-packages>
</weblogic-application>

这适用于ear文件。对于战争,你需要一个WEB-INF/weblogic.xml

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
</weblogic-web-app>