我经常这样做来记录方法调用的输出:
def someMethod() {
def retVal = //stuff
log.debug("The return value is: $retVal")
retVal
}
这似乎是为了记录方法的返回值而进行的许多仪式。我知道可以使用面向方面编程(AOP)来完成这种事情,但我希望只使用Groovy来实现。
Groovy有一个很棒的@Memoize注释,可以自动缓存方法调用,那么它是否有类似的@LogReturn注释来实现我的目标呢?
理想情况下,我希望得到像这样简洁的东西:
@LogReturn("debug")
def someMethod() {
// Stuff
}
注意1:我知道可以使用元编程将该方法包装在另一个方法中,但是我希望能够通过注释更明确地表达。
注意2:我也愿意听取以其他方式实现此操作的建议。
return
值,我希望由其他东西完成它。目标是仍然获得日志记录,但保持方法体“纯净”。 - cdeszaq