Groovy 记录器在关闭时不可用
一些奇怪的行为:记录器在闭包中不可用 这是怎么回事Groovy 记录器在关闭时不可用,groovy,Groovy,一些奇怪的行为:记录器在闭包中不可用 这是怎么回事 Logger logger = Logger.getLogger("groovy.my.foo"); def printParameters() { if(logger.isDebugEnabled()) logger.debug("print parameters") binding.variables.each { key, value -> logger.debug("Name=$
Logger logger = Logger.getLogger("groovy.my.foo");
def printParameters() {
if(logger.isDebugEnabled())
logger.debug("print parameters")
binding.variables.each { key, value ->
logger.debug("Name=$key value= $value");
}
}
仅在提供记录器的情况下工作
def printParameters(Logger logger)
参数没有问题。。。。
谢谢Groovy脚本中的变量是。如果使用类型或
def
它被定义为局部变量,并且在方法中不可访问。如果声明的变量没有类型或def
,它将添加到脚本的绑定中,并可用于其他方法
下面是一个例子:
test = 'output'
printParameters()
def printParameters() {
binding.variables.each { key, value ->
println "$test: key=$key, value=$value"
}
}
在您的情况下,将记录器实例定义为
logger=logger.getLogger(“groovy.my.foo”)
应该可以解决您的问题。尝试在printParameters之后插入一个=符号。例如,def printParameters={[etc…]}您遇到了什么样的错误?运行printParameters时的NPE?如果是的,@Johnny Wey回答说这是在课堂上还是在脚本中?