0

我已经设置了一个 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 的一位维护者,他不明白为什么会发生这种情况。

4

1 回答 1

0

我想到了。我忘记了非常方便的“log4j.debug”属性,它在启用时会告诉您它在哪里找到了“log4j.xml”或“log4j.properties”文件。我在一个意外的 jar 文件中找到了前者,我现在已经对其进行了修补(它将默认级别设置为 DEBUG),现在默认情况下我没有得到调试输出。

于 2012-11-14T17:17:27.787 回答