我已经设置了一个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维护者,他不明白为什么会这样。
答案 0 :(得分:0)
我明白了。我忘记了非常方便的“log4j.debug”属性,该属性在启用时会告诉您它在何处找到“log4j.xml”或“log4j.properties”文件。我在一个意外的jar文件中发现了前者,我现在已经修补了它(它将默认级别设置为DEBUG),现在我没有默认获得调试输出。