我已经设置了一个 Ant 脚本来使用 Cobertura 运行单元测试。出于某种原因,我从 Cobertura 获得了 log4j DEBUG 输出。我一直盯着这个几个小时,使用我能想到的所有诊断方法,我不明白为什么会这样。
我使用 SysInternals ProcessMonitor 检查我是否手动加载了“log4j.properties”或“log4j.xml”。没有找到。
我让 Ant 打开详细类加载,但我从未见过它加载“log4j.properties”或“log4j.xml”。这告诉我这没有传递给分叉进程,因为我知道“cobertura.jar”有一个“log4j.properties”,它具有以下内容:
# set default logging level and appender
log4j.rootCategory=WARN, console
#log4j.category.net.sourceforge.cobertura=WARN, console
#log4j.category.net.sourceforge.cobertura.check=DEBUG, console
#log4j.category.net.sourceforge.cobertura.coverage=DEBUG, file
#log4j.category.net.sourceforge.cobertura.coverage.CoverageDataFactory=INFO, file
#log4j.category.net.sourceforge.cobertura.coverage.SaveInstrumentationTimer=DEBUG, file
#log4j.category.net.sourceforge.cobertura.merge=DEGUG, console
#log4j.category.net.sourceforge.cobertura.reporting=DEBUG, file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-6p %M, %m%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=cobertura.log
log4j.appender.file.MaxFileSize=3000KB
log4j.appender.file.MaxBackupIndex=3
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %-2p [%t] %c{3} - %m - (%F:%L) %n
这里唯一不相关的问题是拼写错误的“DEGUG”,但已被注释掉。
我看不出这是怎么回事。我一直在询问 Cobertura 的一位维护者,他不明白为什么会发生这种情况。