集成测试的 INFO 日志记录约定是什么?

What are INFO logging conventions for Integration Tests?

我已经为一组使用 WebDriver、JUnit 和 Drone 的网络应用编写了一系列集成测试。我现在正在删除 System.out.println 命令,这些命令在关键点显示有关集成测试当前状态的信息,并希望以不会降低性能的方式替换其中一些 System.out.println。目前我正在使用 Logger 并使用 Level.INFO 记录关键点,同时我使用 Level.WARNING 和 level.SEVERE 选项记录影响测试的异常。断言处理我的大部分日志记录。

由于我是一个没有经验的程序员并且对日志记录还很陌生,所以我想知道以下问题:

非常感谢有关这种情况(集成测试)的回答,因为我相信我知道在应用程序中进行日志记录。

integration tests必须说明的是detailed logging的使用。当单元测试失败时,很容易理解原因,因为范围非常狭窄。当集成测试失败时,事情就没那么简单了。

因为根据定义,集成测试基于许多组件和特定数据流,因此识别失败原因并不总是那么简单。 [1]

以及关于哪个级别的日志信息:

  • Trace - 最好的日志记录级别。可用于记录仅在真实调试场景中相关的非常具体的信息,例如,记录每个数据库访问或每个 http 调用等。
  • Debug - 主要帮助您调试程序的信息。例如,每次批处理例程清空其批次或在磁盘上创建新文件等时记录。
  • Info - 一般应用程序流程,例如 "Starting app""connecting to db""registering ..."。简而言之,这些信息应该可以帮助任何观察者了解应用程序的一般情况。
  • Warn - 可以恢复的错误警告。例如未能解析日期或使用不安全的例程。请注意,我们仍然应该尝试遵守 fail fast 原则,而不是使用警告消息隐藏例如配置错误,即使应用程序可能会提供默认值。
  • 错误 - 表示通常无法恢复的错误。例如无法打开数据库连接。
  • Fatal/Critical 用于记录应用程序无法恢复的错误,这可能会导致程序立即终止。 [2]

如果这 2 个好的答案对您有所帮助,我希望这次合并。

[1] : http://zeroturnaround.com/rebellabs/the-correct-way-to-use-integration-tests-in-your-build-process/

[2]:计算器:What information to include at each log level?