我无法调整java日志的日志级别。我正在使用maven surefire(mvn测试),并尝试从默认INFO调整为FINEST。
我在 logging.properties源代码/测试/资源/日志记录.属性下有www.example.com文件
编译后,我在target/test-classes下看到一logging.properties包含预期配置的www.example.com文件:
java.实用程序.日志记录.控制台处理程序.级别=最新
javax.企业.系统.容器.ejb.级别=精细
...
但是,glassfish的控制台输出只有INFO / SEVERE级别的消息。
我哪里做错了?还是这是maven的另一件麻烦事?
4条答案
按热度按时间z2acfund1#
我试着在
MAVEN_OPTS
环境变量中设置java.util.logging.config.file
,但没有成功,最后通过将该系统属性放入pom.xml
中(当然,还在src/test/resources
中创建了一个适当的logging.properties
),使其成功:cngwdvgl2#
您需要在日志文件中指定处理程序
那就应该可以了
5f0d552i3#
尝试
此外,我在命令行中使用surfire-args指定这些内容。
jtjikinw4#
我正在研究这个确切的问题,但是不希望每次我需要在测试中进行特定的日志记录时都更改项目配置(pom.xml)文件。
-D属性在maven命令行中起作用。
因此,您可以从命令行中选择日志记录配置文件:
如果您使用通用级别分母
.level=FINEST
,请注意第三方日志记录也将出现在该级别。要禁用Maven或第三方日志记录或将其设置为特定级别,请在选定的日志配置文件中为这些类使用显式日志级别选择。
我有很多来自com. google. inject的日志行......
所以我补充一句:
到文件。请记住,级别设置递归到所有子类。因此,
com.level=NONE
将禁用来自com
域的所有记录程序的所有日志记录。将其与surefire插件中的测试选择特性
-Dtest=...
结合起来,可以很好地隔离bug和错误。