@Override
    public Object invoke(Object proxy, Method method, Object[] args)
            throws Throwable
    {
        
        Object result = null;
		try {
			result = method.invoke(target, args);
			logger.info(method.getName());
		} catch (IllegalAccessException ex) {
			String output = "";
			for (int i = 0; i < args.length; i++) {
				output = args[i].getClass().getName();
			}
			logger.warning(ex.toString() + " In Method: " + method.getName()
					+ " With Parameter: " + output);
		} catch (InvocationTargetException ex) {
			String output = "";
			for (int i = 0; i < args.length; i++) {
				output = args[i].getClass().getName();
			}
			logger.warning(ex.toString() + " In Method: " + method.getName()
					+ " With Parameter: " + output + "target " + target.toString());
		}
		return result;
	}