0

一些奇怪的行为:记录器在关闭时不可用这里发生了什么?

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)  

参数没问题....谢谢

4

1 回答 1

2

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")应该可以解决您的问题。

于 2012-08-23T15:35:51.383 回答