Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Weblogic中有两个耳朵的Log4j日志记录问题_Java_Log4j_Weblogic_Weblogic 10.x - Fatal编程技术网

Java Weblogic中有两个耳朵的Log4j日志记录问题

Java Weblogic中有两个耳朵的Log4j日志记录问题,java,log4j,weblogic,weblogic-10.x,Java,Log4j,Weblogic,Weblogic 10.x,我在WebLogic10、A和B中部署了两个EAR。在这两个版本中,我都有一个“log4j.properties”文件。在启动时,当第一个ear加载时,日志将被加载到正确的文件“A.log”,但当第二个ear加载时,所有日志都将被加载到“B.log”文件,甚至是与第一个ear相关的日志。 我错过了一些东西。。。有什么想法吗 谢谢 编辑/解决方案: 类加载器问题。 添加到weblogic-application.xml: org.apache.log4j.* 谢谢大家:)老实说,从这里很难说,

我在WebLogic10、A和B中部署了两个EAR。在这两个版本中,我都有一个“log4j.properties”文件。在启动时,当第一个ear加载时,日志将被加载到正确的文件“A.log”,但当第二个ear加载时,所有日志都将被加载到“B.log”文件,甚至是与第一个ear相关的日志。 我错过了一些东西。。。有什么想法吗

谢谢

编辑/解决方案: 类加载器问题。 添加到weblogic-application.xml:


org.apache.log4j.*


谢谢大家:)

老实说,从这里很难说,但你可以试试这些:

1) 检查两个log4j属性文件中的记录器名称是否唯一。
2) 我认为.properties文件没有缓存在磁盘上,但仍在删除应用程序
部署目录(两个EAR应该是分开的)

我猜Weblogic服务器使用的log4j库在两个web应用程序中都使用过

如果是这种情况,两个web应用程序将共享一个根类加载器,为Weblogic加载的全局库提供服务


如果您的web应用程序都提供了log4j的副本,并且您可以选择在服务器类之前加载应用程序类(我不知道Weblogic,但对于WebSphere,设置为“classloader mode:parent first/parent last”),这可能会解决您的问题。

您的log4j.properties在EAR中的路径是什么?另外,您使用的是内置在WLLogic 10中的log4j还是单独使用的?您可能需要参考相关问题:JoseK:my log4j.properties位于根“conf”文件夹中。每个ear在APP-INF\libl'ponge est un con中都有一个“log4j-1.2.15.jar”:您可以尝试下面的两个步骤吗?将各个文件放在/APP-INF/classes/log4j.properties文件中,并使用标记wls:preference应用程序包。记录器名称是唯一的。每次启动时,缓存都会被清理。batwls:首选应用程序包是您要寻找的。非常好!!我已经搜索了5天了:)