logging Create log method在java中记录当前执行方法的参数及其值
我想要一个方法,例如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()
,但我认为应该有一种更简单、更方便的方法
提前谢谢
# 1 楼答案
你可以通过两种方式做到这一点-
通过使用拦截器Logging With Interceptors
另请参阅此-Oracle Doc For Interceptor
通过使用AspectJ-Logging With AspectJ
参考本SO answer了解如何使用AspectJ进行日志记录