创建日志方法以记录java中当前执行方法的参数及其值

时间:2015-09-21 14:10:31

标签: java logging

我想要方法 - 例如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 个答案:

答案 0 :(得分:1)

你可以通过两种方式做到这一点 -

  1. 使用拦截器 - Logging With Interceptors

    另请参阅此内容 - Oracle Doc For Interceptor

  2. 使用AspectJ- Logging With AspectJ

    请参阅此SO answer以了解如何使用AspectJ进行日志记录。