所有应用程序日志都进入同一个 log4j 日志文件



(可能是共同事件),但是这个问题发生在我们从 Ant 构建切换到 Maven 之后。

(服务器是Weblogic 10.3.5)

我们有几个应用程序,每个应用程序

都有自己的log4j.properties,每个应用程序都登录到自己的应用程序.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

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

这可能是 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>

这适用于耳朵文件。 对于战争,您需要一个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>

相关内容

最新更新