如何在 ShrinkWrap 容器中使用 log4j2?
How to use log4j2 in a ShrinkWrap container?
我尝试在我的项目和 Arquillian 测试中使用统一日志记录,但出于某种原因,ShrinkWrap 容器的 Wildfly 不使用我的 log4j2.xml 日志记录配置。
我的部署容器在测试中是这样设置的:
@Deployment
public static Archive<?> createDeployment() {
PomEquippedResolveStage pomFile = Maven.resolver().loadPomFromFile("pom.xml");
WebArchive archive = ShrinkWrap.create(WebArchive.class)
.addAsLibraries(pomFile.resolve("org.mockito:mockito-all").withTransitivity().asFile())
.addAsLibraries(pomFile.resolve("org.slf4j:slf4j-api").withTransitivity().asFile())
.addAsLibraries(pomFile.resolve("org.slf4j:jcl-over-slf4j").withTransitivity().asFile())
.addAsLibraries(pomFile.resolve("org.apache.logging.log4j:log4j-slf4j-impl").withTransitivity().asFile())
.addClasses(/* the required classes*/)
.addAsResource("log4j2.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
return archive;
}
我明确添加了 slf4j 和 log4j 实现,这对项目的其余部分工作正常。如何在此处正确启用 log4j2?
现在好像可以了。我在 log4j2.xml 中的错误级别有误,因此只显示了 Wildfly 的标准输出。
上面的例子有效。
我尝试在我的项目和 Arquillian 测试中使用统一日志记录,但出于某种原因,ShrinkWrap 容器的 Wildfly 不使用我的 log4j2.xml 日志记录配置。
我的部署容器在测试中是这样设置的:
@Deployment
public static Archive<?> createDeployment() {
PomEquippedResolveStage pomFile = Maven.resolver().loadPomFromFile("pom.xml");
WebArchive archive = ShrinkWrap.create(WebArchive.class)
.addAsLibraries(pomFile.resolve("org.mockito:mockito-all").withTransitivity().asFile())
.addAsLibraries(pomFile.resolve("org.slf4j:slf4j-api").withTransitivity().asFile())
.addAsLibraries(pomFile.resolve("org.slf4j:jcl-over-slf4j").withTransitivity().asFile())
.addAsLibraries(pomFile.resolve("org.apache.logging.log4j:log4j-slf4j-impl").withTransitivity().asFile())
.addClasses(/* the required classes*/)
.addAsResource("log4j2.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
return archive;
}
我明确添加了 slf4j 和 log4j 实现,这对项目的其余部分工作正常。如何在此处正确启用 log4j2?
现在好像可以了。我在 log4j2.xml 中的错误级别有误,因此只显示了 Wildfly 的标准输出。
上面的例子有效。