日志管理

    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());
        }
    }
   

你可能感兴趣的:(管理)