指定单元测试的日志级别

时间:2017-05-04 22:41:32

标签: google-cloud-dataflow

有人知道如何为单元测试指定loglevel和/或启用调试级别日志消息吗?

我正在为一个在我们的某个管道中扩展DoFn的类编写\编辑一些单元测试。其中一项测试以一种有趣的方式失败,我希望捕获日志消息(包括DEBUG )以转发给其他开发人员。

我使用Eclipse作为我的IDE。 我尝试了几件事

  • 首先我将其添加到运行配置-Dexec.args="--defaultWorkerLogLevel=DEBUG"
  • 的VM参数中
  • 其次,我在项目的src / test文件夹下创建了一个资源文件夹,然后在那里放了一个应该启用debugg消息的log4j.xml。

只是为了回答自然的第一个问题,是的,我非常确定调试消息已被禁用,因为我将此行添加到我的单元测试System.out.println(String.valueOf(LOG.isDebugEnabled()));并且确实在控制台中打印了false

感谢您的帮助, 丹

1 个答案:

答案 0 :(得分:0)

我相信,对于测试,您应该只能调整正在运行的JVM的日志级别。defaultWorkerLogLevel仅影响为分布式执行启动的工作人员。 DirectRunner使用slf4j,所以我相信你应该考虑调整slf4j的日志级别,而不是log4j。