在spock groovy框架中使用log4j设置适当的日志记录级别

时间:2017-03-06 17:03:01

标签: groovy log4j spock

我是spock框架和groovy的新手。 在我的测试项目中,我试图将log4j配置设置为'INFO',但是当我单独或通过'gradle test'运行spock'Specification'类时,它似乎记录了所有消息。

这是我的'log4jconfig.groovy'文件

log4j {

appender.stdout = "org.apache.log4j.ConsoleAppender"
appender."stdout.layout"="org.apache.log4j.PatternLayout"
appender.scrlog = "org.apache.log4j.FileAppender"
appender."scrlog.layout"="org.apache.log4j.TTCCLayout"
appender."scrlog.file"="script.log"

rootLogger="info,scrlog,stdout"
}

和我的'SpockConfig.groovy'

import org.apache.log4j.*
import groovy.util.logging.*

def config = new ConfigSlurper().parse(new File('src/test/resources /log4jconfig.groovy').toURL())
PropertyConfigurator.configure(config.toProperties())
Logger log = Logger.getInstance(getClass())

log.level = Level.INFO

我的'service'类似乎记录了调试消息

@Log4j 
class PasswordResetService extends BaseService {
   def updateCustomerPassword(String oldpassword, String newpassword, String accessToken){
       log.debug("new password "+ newpassword)
   }
}

我错过了什么。

感谢。

1 个答案:

答案 0 :(得分:0)

在您的服务中:

log.info "new password "+ newpassword //writes an info-level message 
log.warn "new password "+ newpassword //writes a warning-level message
log.error "new password "+ newpassword //guess what
log.debug "new password "+ newpassword //the one that you were executing

重新检查spock配置,我相信有些东西可能会被删除。