public static T Create <T>(LoggerType loggerType, bool canOverrideLoggerType, params object[] args)
        {
            var tmp      = (T)Activator.CreateInstance(typeof(T), args);
            var logProxy = new LogProxy <T>(tmp, loggerType, canOverrideLoggerType);

            return((T)logProxy.GetTransparentProxy());
        }
        public static T Create <T>(Predicate <MethodInfo> filter, LoggerType loggerType, bool canOverrideLoggerType, params object[] args)
        {
            var tmp      = (T)Activator.CreateInstance(typeof(T), args);
            var logProxy = new LogProxy <T>(tmp, loggerType, canOverrideLoggerType)
            {
                Filter = filter
            };

            return((T)logProxy.GetTransparentProxy());
        }