gpt4 book ai didi

logging - 有没有一种干净的方法来记录 Groovy 中方法的结果?

转载 作者:行者123 更新时间:2023-12-03 17:50:20 24 4
gpt4 key购买 nike

我经常发现自己做这样的事情是为了记录方法调用的输出:

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:我也愿意接受以不同方式完成此任务的建议

最佳答案

我不知道 groovy 核心中是否存在任何此类记录返回值的注释。话虽如此,我认为通过一些 AST 转换应该是可能的。如果您关注 this文档,它有点类似,即记录条目并存在于带注释的方法,但不打印返回值。

blog显示了如何捕获返回值以进行缓存,您可以将其用于日志记录。我怀疑你需要小心,因为这假设最后一条语句是一个返回值,所以如果你在最后一条语句之前明确返回,这可能不起作用。这只是我的猜测,我自己没有尝试过。

关于logging - 有没有一种干净的方法来记录 Groovy 中方法的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com