在Spock Groovy框架中使用Log4J设置适当的记录级别



我是Spock框架和Groovy的新手。在我的测试项目中,我试图将Log4J配置设置为"信息",但是当我单独或通过" Gradle Test"单独运行SPOCK"规范"类时,它似乎会记录所有消息。

这是我的'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

和我的"服务"课程似乎还记录了调试消息

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

我错过了任何东西。

谢谢。

在您的服务中:

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配置,我相信可能会从那里删除一些东西。

最新更新