Jakarta ee WildFly 9.0.1 FINAL中特定于应用程序的日志记录(SL4J+Logback)
我阅读了一些文章,并试图通过一些类似的SO问题找到解决方案,但仍然无法做到这一点——我的日志文件并没有在我搜索的任何地方创建 我的目标是在应用程序中捆绑工作日志,而不是使用特定于供应商的日志。我目前的情况如下: 我在MyEAR/META-INF目录中创建了jboss-deployment-structure.xml,内容如下:Jakarta ee WildFly 9.0.1 FINAL中特定于应用程序的日志记录(SL4J+Logback),jakarta-ee,logging,jboss,wildfly,ear,Jakarta Ee,Logging,Jboss,Wildfly,Ear,我阅读了一些文章,并试图通过一些类似的SO问题找到解决方案,但仍然无法做到这一点——我的日志文件并没有在我搜索的任何地方创建 我的目标是在应用程序中捆绑工作日志,而不是使用特定于供应商的日志。我目前的情况如下: 我在MyEAR/META-INF目录中创建了jboss-deployment-structure.xml,内容如下: <?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> &
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<!-- it only affects single deployment -->
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
我的依赖项在父POM文件中指定,如下所示:
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>
</dependencies>
这将导致文件夹MyEAR/lib,其中包含这三个JAR文件
我希望将此日志记录配置保持在EAR级别,以便所有EJB和WAR模块都可以使用它
要使它工作起来,我还缺少什么吗?您还需要为每个子部署排除日志子系统。比如:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<!-- it only affects single deployment -->
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
<sub-deployment name="mywar.war">
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</sub-deployment>
<sub-deployment name="myejb.jar">
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</sub-deployment>
</jboss-deployment-structure>
不幸的是没有区别。我按照您建议的方式包括了所有模块,但是日志记录仍然只进入标准的WildFly日志,包括stdout和server.log.Hmm。。。我对logback了解不多,但看起来它没有被配置。也许试着把它放在WAR文件中,看看它是否配置了它。我不确定它在哪里查找配置文件。嗯,它使用WildFly配置及其日志,所以我想说这些排除不起作用,因为它们应该禁用此关系。将尝试像您所说的那样在我的模块中移动这些。排除日志子系统只会停止部署处理器的运行,这只会添加依赖项、查找日志记录配置文件等。即使关闭日志子系统,日志记录仍应工作。
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<!-- it only affects single deployment -->
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
<sub-deployment name="mywar.war">
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</sub-deployment>
<sub-deployment name="myejb.jar">
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</sub-deployment>
</jboss-deployment-structure>