(可能是共同事件),但是这个问题发生在我们从 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>