【发布时间】:2017-08-04 23:18:56
【问题描述】:
我有同样的问题:How to set the log level to DEBUG during Junit tests? - 除了我正在使用 java.util.logging,而不是 Log4j。
具体来说,我将现有(Maven 构建)应用程序从 Log4j 转换为 java.util.logging,以符合客户要求(不可协商)。一切都使用 SLF4J,因此代码更改很少。有超过一千个测试类,分布在几个模块中;我们目前在这些模块的src/test/resources 中有一个log4j.properties 文件,用于自定义测试的日志输出。
我认为日志输出可以轻松定制以用于测试很重要:如果开发人员中断测试并想要读取日志输出,我希望他们在本地调整日志配置而不是开始弄乱(精心挑选的)代码中的日志级别,导致“所有内容都记录在信息中”综合症。请注意,我希望测试日志配置应用于“在测试条件下执行时的测试+应用程序代码”。
我不想为每个测试类添加日志设置(如这里建议的那样:How to set the Loglevel for a JUnit Test),因为测试数量很大。这似乎是错误的解决方案。我也不想去编辑 JVM 的 logging.properties 文件,因为这会影响一切。这个应用程序不是我唯一做的事情。我还必须让其他人做出同样的改变。
现有系统可以正常工作,因为 Log4j 从类路径中选择了/log4j.properties。 java.util.logging 是否有等效机制?
当前的想法:添加一个logging.properties 文件来替换现有配置,并尝试破解 Maven 配置以将java.util.logging.config.file 参数设置为指向它。有没有更简洁的方法?
【问题讨论】:
标签: java logging junit log4j java.util.logging