【发布时间】:2015-07-07 05:27:42
【问题描述】:
我正在使用 Geb 和 Spock 编写功能测试,并使用 GMavenPlus 构建 Maven。如何配置 Log4J 以从我的 Groovy 源文件中打印行号?这是我目前的log4j.properties
log4j.rootLogger=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%-p] %d{dd-MM-yyyy HH:mm:ss} %c:%L - %m%n
目前这会导致消息看起来像
[INFO] 2015-07-28 14:13:51,589 Log4jExample:? - Some useful message
这可以在这个小例子中重现
@Grab(group='log4j', module='log4j', version='1.2.17')
import org.apache.log4j.*
@groovy.util.logging.Log4j
class Log4jExample {
static void main(def args) {
log.level = Level.INFO
log.removeAllAppenders()
log.addAppender(new ConsoleAppender(new PatternLayout("[%-p] %d %c:%L - %m%n")))
log.info "Some useful message"
}
}
【问题讨论】:
-
您能解释一下“未使用类文件中包含的调试信息进行编译”的意思吗? GMavenPlus 的调试配置是为了控制编译过程的详细程度,它对类文件没有影响。是您的调试日志语句没有被记录的问题吗?
-
@keegan,日志语句不打印行号。请在下面找到我的 log4j 属性文件 log4j.rootLogger=INFO,CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=DEBUG log4j.appender.CONSOLE.layout=org.apache.log4j。 PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern= [%-p] %d{dd-MM-yyyy HH:mm:ss} %c:%L- %m%n