JBoss 记录 Java 单元测试?

JBoss Logging for Java Unit Test?

我继承了一些 java 显式使用 JBoss 日志记录实现的代码。我知道这通常被配置为 JBoss 子系统,并且当 运行 在服务器上时,我能够很好地观察各种日志调整操作。但是,我没有得到任何单元测试的日志消息输出。我在测试类路径中放置了几个配置文件,包括:

但还没有看到任何结果。有没有人能够配置 JBoss 日志系统,使它们在单元测试中在容器外可见?这可能吗? logging configuration guide 没有说明如何做到这一点。

我将尝试使用 Arquillian Test Cases 测试代码,它的特点是可以部署部分代码,仅在 "real environment" 中进行测试。 它在很多 RH JBoss 文档中被推荐。

您可以尝试重用您的 junit 代码,并使用本指南修改它们:http://arquillian.org/guides/getting_started/

我不是那种技术的大师。希望对你有帮助。

您可以使 log4j.xml 工作,但您需要确保在测试类路径上有一个兼容的 vanilla log4j 版本,例如1.2.17,并且您没有在类路径上没有读取 log4j.xml.

的修改版本 log4j-jboss-logmanager

详情。

参见。 我拿这个:

I would recommend you configure the log manager using the logging subsystem provided with the application server. This is the only way to configure the server logging.

意味着在测试中配置 JBoss 日志管理器基本上是不可能的,因为没有服务器子系统配置,也没有任何东西可以解析它。也许您可以通过编程方式配置它,但这太不方便了。

所以这让我们使用带有 log4j 的 JBoss 日志外观作为日志管理器,可以使用 log4j.xml.

轻松配置

现在,我想起来了,在 Wildfly 中有一个 logging.properties 文件,它在日志子系统初始化之前配置日志记录。这意味着您可以使用 logging.properties 配置 JBoss 日志管理器,您只需要将相关的 jar 放在测试类路径中,可能是 jboss-logmanager 和 log4j-jboss-日志管理器。