如何在ShrinkWrap容器中使用log4j2?

时间:2017-12-14 08:10:22

标签: java log4j log4j2 jboss-arquillian shrinkwrap

我尝试在项目中使用统一日志记录以及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?

1 个答案:

答案 0 :(得分:0)

现在似乎有用了。我在log4j2.xml中的错误级别出错了,所以只显示了Wildfly的标准输出。

以上示例有效。