我正在尝试定义一个包含操作名称和控制器名称的变量。该变量将用于记录。
这是我的控制器:
class SomeController {
def TAG = "${controllerName}/${actionName}"
// rest of code
}
上面的代码不起作用,因为在评估gString时不知道actionName。
所以我现在要做的是,在控制器的每个动作中,我必须把它放到位:
class SomeController {
// .....
def someAction() {
def TAG = "${controllerName}/${actionName}"
// rest of code
log.debug("${TAG}: logging message")
}
}
所以我基本上希望避免在每个动作中定义TAG
。有没有办法简单地将它定义为一个全局变量(或其他)一次,以便我可以在每个操作中调用它来记录,如上面的代码?
答案 0 :(得分:0)
好吧最后我明白了。我使用lazy evaluation将TAG声明为闭包:
class SomeController {
def TAG = "${-> controllerName}/${-> actionName}"
// rest of code
}
希望它也有助于其他人!!