集成测试的 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 选项记录影响测试的异常。断言处理我的大部分日志记录。
由于我是一个没有经验的程序员并且对日志记录还很陌生,所以我想知道以下问题:
- 是否有一组记录级别的约定(更具体地说,使用 INFO 级别记录什么)?
- 根据我的描述,我是否掌握了Loggers的使用方法?
非常感谢有关这种情况(集成测试)的回答,因为我相信我知道在应用程序中进行日志记录。
和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?
我已经为一组使用 WebDriver、JUnit 和 Drone 的网络应用编写了一系列集成测试。我现在正在删除 System.out.println 命令,这些命令在关键点显示有关集成测试当前状态的信息,并希望以不会降低性能的方式替换其中一些 System.out.println。目前我正在使用 Logger 并使用 Level.INFO 记录关键点,同时我使用 Level.WARNING 和 level.SEVERE 选项记录影响测试的异常。断言处理我的大部分日志记录。
由于我是一个没有经验的程序员并且对日志记录还很陌生,所以我想知道以下问题:
- 是否有一组记录级别的约定(更具体地说,使用 INFO 级别记录什么)?
- 根据我的描述,我是否掌握了Loggers的使用方法?
非常感谢有关这种情况(集成测试)的回答,因为我相信我知道在应用程序中进行日志记录。
和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?