用于Java单元测试的JBoss日志记录?

时间:2015-10-01 21:00:38

标签: java jboss jboss-logging

我继承了一些明确使用JBoss Logging实现的java代码。我知道这通常被配置为JBoss Subsytem,并且我能够在服务器上运行时观察各种日志调优操作。但是,我没有获得单元测试的任何日志消息输出。我已经在测试类路径上删除了几个配置文件,包括:

  • logging.properties
  • 的log4j.xml
  • log4j2.xml

但没有看到任何结果。有没有人能够配置JBoss Logging系统,以便它们在单元测试中可以在容器外看到?这甚至可能吗? logging configuration guide没有说明如何执行此操作。

2 个答案:

答案 0 :(得分:1)

您可以使log4j.xml正常工作,但您需要确保在测试类路径上有兼容的vanilla log4j版本,例如: 1.2.17,并且你没有在类路径上有修改版本log4j-jboss-logmanager,它没有读取log4j.xml。

详情。

https://stackoverflow.com/a/18323126/1341535。 我接受这个:

  

我建议您使用日志记录配置日志管理器   子系统随应用服务器提供。这是唯一的方法   配置服务器日志记录。

暗示在测试中配置JBoss Log Manager基本上是不可能的,因为没有服务器子系统配置,也没有什么可以解析它。也许您可以通过编程方式对其进行配置,但这太不方便了。

因此,我们使用JBoss Logging facade和log4j作为日志管理器,可以使用log4j.xml轻松配置。

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

答案 1 :(得分:-1)

我将尝试使用Arquillian Test Cases测试代码,它可以部署代码的一部分,以便在“真实环境”中对其进行测试。 它在很多RH JBoss文档中都有推荐。

您可以尝试重复使用junit代码,并使用本指南对其进行修改:http://arquillian.org/guides/getting_started/

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