【问题标题】:Citrus Framework logging - how to enable/useCitrus Framework 日志记录 - 如何启用/使用
【发布时间】:2020-02-18 15:24:05
【问题描述】:

Citrus Framework 文档表明可以通过 SLF4J 日志系统记录集成测试控制台输出。这是否是自动的,或者是否需要以某种方式启用并不明显。我的经验表明它没有启用,因为没有生成包含测试运行控制台上显示的内容的日志文件。

我的应用程序使用 Log4J 和关联的 log4j2-spring.xml 文件(在 src/main/resources 中)来定义日志格式和文件。当通过 Citrus 运行集成测试时,应用程序控制台输出(和其他信息)会正确记录到 Log4J 配置文件中指定的文件中。但是,任何地方都没有记录 Citrus 控制台输出(控制台除外)。

如何启用 Citrus 测试控制台输出的日志记录?我创建了一个单独的log4j.xml 并放在src/test/resources 中,但这似乎被忽略了。

我是否需要在配置中指定一个特定于 Citrus 输出的单独记录器?

【问题讨论】:

    标签: log4j2 citrus-framework


    【解决方案1】:

    Citrus 使用 SLF4J,它是其他几个日志框架的外观。所以你需要选择你最喜欢的日志框架(在你的例子中是 Log4J)并为那个日志框架添加一个 SLF4J 记录器绑定。这在SLF4J user manual中都有描述

    我建议将 Log4J 的 SLF4J 记录器绑定添加为项目中的测试范围依赖项。此外,根据您的 Log4J 配置设置,您可能需要为 com.consol.citrus 添加 Log4J 记录器配置并为其设置适当的日志记录级别,以便查看 Log4J 记录的 Citrus 输出。

    【讨论】:

    • 我在这些应用程序中使用 Log4J 2,它是通过 Log4J2 的 Spring Boot starter (spring-boot-starter-log4j2) 配置的。我不知道 Log4J 1 和 Log4J 2 之间的区别。考虑到这一点,Citrus 日志记录是否适用于 Log4J 2?
    • 我在src/main/resources 中有一个现有的log4j2-spring.xml 配置文件,我用它来控制运行期间应用程序的日志输出。当我通过 Citrus 运行集成测试时,会使用此配置,还是应该在 src/test/resources 下定义一个单独的配置来记录单元/集成测试?
    • 我还按照建议查看了 SLF4J 用户手册。没有提到 Log4J 2 的迹象。我想知道 SLF4J 是否适用于 Log4J 2。
    • 是的,Log4J2 提供 SLF4J 绑定:logging.apache.org/log4j/2.x/log4j-slf4j-impl/…
    • 我发现一篇文章给了我一个想法,我尝试过并且成功了。文章 (howtodoinjava.com/log4j2/configure-log4j2-for-junit) 引用了一个单独的 log4j 配置文件,名为 log4j2-test.xml 并放在 src/test/resources 中。经过一些实验后,我得到了它在我想要的文件中记录我想要的内容。
    猜你喜欢
    • 2017-01-14
    • 1970-01-01
    • 2011-08-09
    • 2018-07-15
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    相关资源
    最近更新 更多