我使用 WebDriver、JUnit 和 Drone 为一组 Web 应用程序编写了一系列集成测试。我现在正在删除 System.out.println 命令,这些命令在关键点显示有关集成测试当前状态的信息,并且希望以不会像 System.out.println 那样降低性能的方式替换其中一些命令。目前,我正在使用记录器并使用 Level.INFO 记录关键点,同时使用 Level.WARNING 和 level.SEVERE 选项记录影响测试的异常。断言处理我的大部分日志记录。
由于我是一名经验不足的程序员,并且对日志记录非常陌生,因此我想知道以下问题:
- 是否有一组日志记录级别约定(更具体地说,使用 INFO 级别记录哪些内容)?
- 从我的描述中,我是否掌握了应该如何使用 Logger?
关于这种情况(集成测试)的答案将不胜感激,因为我相信我知道应用程序内的日志记录。
最佳答案
对于集成测试
,必须考虑的是详细日志记录
的使用。当单元测试失败时,很容易理解原因,因为范围非常狭窄。当集成测试失败时,事情就不那么简单了。
因为根据定义,集成测试基于许多组件和特定的数据流,因此识别失败原因并不总是那么简单。 [1]
以及关于哪个信息的日志级别:
- Trace - 最好的日志记录级别。可用于记录仅在真实调试场景中相关的非常具体的信息,例如记录每个数据库访问或每个 http 调用等。
- 调试 - 主要帮助您调试程序的信息。例如,每次批处理例程清空其批处理或在磁盘上创建新文件等时记录。
- 信息 - 一般应用程序流程,例如“启动应用程序”、“连接到数据库”、“注册...”。简而言之,这些信息应该帮助任何观察者了解应用程序总体上正在做什么。
- 警告 - 警告可恢复的错误。例如无法解析日期或使用不安全的例程。请注意,尽管应用程序可能提供了默认值,但我们仍然应该尝试遵守快速失败原则,而不是使用警告消息隐藏例如配置错误。
- 错误 - 表示通常无法恢复的错误。比如无法打开数据库连接。
- 致命/严重</strong> 用于记录应用程序无法恢复的错误,这可能会导致程序立即终止。 [2]
如果这两个好的答案能够帮助您,我希望这次合并。
[1] : http://zeroturnaround.com/rebellabs/the-correct-way-to-use-integration-tests-in-your-build-process/
[2]:Stackoverflow:What information to include at each log level?
关于java - 集成测试的 INFO 日志记录约定是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31807530/