public void enterFunc(Object... objects)
{
try
{
String methodName = null;
StackTraceElement[] eles = Thread.currentThread().getStackTrace();
for (int i = 0; i < eles.length; i++)
{
if ("enterFunc".equals(eles[i].getMethodName()))
{
methodName = eles[i + 1].getMethodName();
break;
}
}
String[] paramNames = new String[objects.length];
for (int i = 0; i < objects.length; i++)
{// 参数名称初始化为null
paramNames[i] = null;
}
StringBuffer str = new StringBuffer();
str.append("[Begin][Function]" + methodName + "[Param]");
if (objects == null || objects.length == 0)
{
str.append("null");
}
else
{
List<Method> methodList = new ArrayList<Method>();
Method[] methods = clazz.getDeclaredMethods();
for (int i = 0; i < methods.length; i++)
{
if (methods[i].getName().equals(methodName))
{
methodList.add(methods[i]);
}
}
if (methodList.size() > 0)
{// 判断是否有重载或参数是否匹配
for (int i = 0; i < methodList.size(); i++)
{
boolean isMatch = true;
Class[] clss = methodList.get(i).getParameterTypes();
for (int j = 0; j < clss.length; j++)
{
if (!clss[j].isInstance(objects[j]))
{// 不匹配
isMatch = false;
break;
}
}
if (isMatch)
{// 匹配,参数名称赋值
paramNames = pr.getParameterNames(methodList.get(i));
break;
}
}
}
str.append("(");
for (int i = 0; i < objects.length; i++)
{
str.append(appendParam(paramNames[i], objects[i]));
}
str.deleteCharAt(str.length() - 1);
str.append(")");
}
// System.out.println(str);
logger.debug(str.toString());
}
catch (Throwable e)
{
logger.debug("[Exception][Function]enterFuncDebugLog[Description]" + e.toString());
}
}
日志管理
最新推荐文章于 2024-12-05 04:45:00 发布