一些奇怪的行为:logger在关闭时不可用 这是怎么回事?
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)
参数没问题.... 感谢
答案 0 :(得分:2)
Groovy脚本中的变量是scoped。如果使用类型或def
,则将其定义为局部变量,并且在方法中无法访问。如果声明一个没有类型的变量或def
它将被添加到脚本的绑定中,并且可以在其他方法中使用。
以下是一个例子:
test = 'output'
printParameters()
def printParameters() {
binding.variables.each { key, value ->
println "$test: key=$key, value=$value"
}
}
在您的情况下,将记录器实例定义为logger = Logger.getLogger("groovy.my.foo")
可以解决您的问题。