我想要方法 - 例如LogUtil.logCurrentMethod()
,它返回执行它的方法的参数及其值。
例如:
public void temp(int first, String second, int third){
LogUtil.logCurrentMethod()
//something
}
当我打电话时:
temp(1, "2", 3);
打印:
first: 1
second: 2
third: 3
我想要那样,因为例如用5个参数记录方法的所有参数真的很烦人。 logCurrentMethod
可以获取参数,其目的是使日志记录更容易。另一个问题是,当我复制粘贴日志行时,我经常不会更改参数名称(所以我有例如记录宽度和宽度而不是宽度和高度或类似的东西)。我可以创建new Object{}.getClass.getEnclosingMethod()
来获取此方法并将其传递给方法(并使用Reflection
获取其名称),但我不知道这些值。其他方法是将参数传递给log方法并传递new Object{}.getClass.getEnclosingMethod()
,但我认为应该有一种更简单,更方便的方法。
提前谢谢。
答案 0 :(得分:1)
你可以通过两种方式做到这一点 -
使用拦截器 - Logging With Interceptors
另请参阅此内容 - Oracle Doc For Interceptor
使用AspectJ- Logging With AspectJ
请参阅此SO answer以了解如何使用AspectJ进行日志记录。