Glassfish上有多个log4j2项目

Glassfish上有多个log4j2项目,glassfish,log4j2,Glassfish,Log4j2,我有一个EAR项目,由3个模块/项目组成:WEB、EJB和JPA。在WEB项目中,我为日志添加了log4j2。因此,我将log4j2.xml文件放入WebContent/WEB-INF/direcotry 现在,我已经完成了两个项目:开发人员版本和测试版本。项目名称主要不同。它们在log4j2.xml文件中配置了不同的文件位置,可以将日志写入其中 当我只部署一个项目(例如开发人员版本)时,一切正常。但是,当im部署这两个项目时,它们都会记录到同一个文件(总是首先部署的项目在log4j2中配置的文

我有一个EAR项目,由3个模块/项目组成:WEB、EJB和JPA。在WEB项目中,我为日志添加了log4j2。因此,我将log4j2.xml文件放入WebContent/WEB-INF/direcotry

现在,我已经完成了两个项目:开发人员版本和测试版本。项目名称主要不同。它们在log4j2.xml文件中配置了不同的文件位置,可以将日志写入其中

当我只部署一个项目(例如开发人员版本)时,一切正常。但是,当im部署这两个项目时,它们都会记录到同一个文件(总是首先部署的项目在log4j2中配置的文件)。 我的Glassfish版本是3.1.2.2,Log4j2版本是2.0.2


有人知道怎么解决吗

log4j2手册中有关于的详细信息


log4j2 jar文件是否也在WebProject1/WEB-INF/lib和WebProject2/WEB-INF/lib文件夹中(而不是在某些共享位置)?这样log4j2类将由单独的webapp类加载器加载,它们可以有单独的配置。

lib位于WebProject1/WEB-INF/lib和WebProject2/WEB-INF/lib中。我在glassfish/domains/domain1/lib中也有log4j2库。当我从glassfish/domains/domain1/lib目录中删除libs时,问题就解决了。然而,如果我不在glassfish/domains/domain1/lib中保留log4j2 libs,在一些部署之后,我会得到这里描述的PerGen错误:嗯。。。我认为,从glassfish/domains/domain1/lib目录中删除log4j2 libs是允许为单独的web应用程序进行单独配置的唯一方法。您是否尝试了您链接到的StackOverflow问题中提到的PermGen空间错误的任何解决方案?是的,我在jvm选项中添加了
-XX:+cmsclasssUnloadingEnabled-XX:+cmpsPermGensweepingEnabled
,但没有任何更改。探查器仍然显示了不断增长的PermGen内存大小和类数。我正在努力寻找“死牛”,就像这里写的:,但这并不是那么容易。将log4j2jar放在glassfish域libs目录中是一个解决方案,但我知道我必须找到另一个,因为我有两个项目。