我继承了一些明确使用JBoss Logging实现的java代码。我知道这通常被配置为JBoss Subsytem,并且我能够在服务器上运行时观察各种日志调优操作。但是,我没有获得单元测试的任何日志消息输出。我已经在测试类路径上删除了几个配置文件,包括:
但没有看到任何结果。有没有人能够配置JBoss Logging系统,以便它们在单元测试中可以在容器外看到?这甚至可能吗? logging configuration guide没有说明如何执行此操作。
答案 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/
我不是那种技术的大师。我希望它会对你有所帮助。