public FreeException(Exception exc, FreeLogger log)
 {
     _logEntry = log;
     if (exc != null)
     {
         _logEntry.StackTrace = exc.StackTrace;
         _logEntry.Message    = exc.Message;
     }
     _logEntry.Write();
 }
 /// <summary>
 /// Logs exception with given parameters.
 /// </summary>
 /// <param name="ex">Exception object</param>
 /// <param name="method">MethodBase which exception handled in.</param>
 public static void LogException(Exception ex, MethodBase method)
 {
     try
     {
         FreeLogger.LogException(ex, string.Format("An Exception handled at {0} method.", method.Name), "MTHD_ERR");
     }
     catch (Exception)
     {
         throw;
     }
 }
        /// <summary>
        /// Logs exception with given parameters.
        /// </summary>
        /// <param name="ex">Exception object</param>
        /// <param name="title">Exception Title.</param>
        /// <param name="errorcode">Error Code for Exception.</param>
        public static void LogException(Exception ex, string title, string errorcode)
        {
            FreeLogger freeLogger = new FreeLogger()
            {
                Title      = title,
                LogCode    = errorcode,
                StackTrace = ex.StackTrace,
                Message    = ex.Message,
                LogType    = LogTypes.Error
            };

            freeLogger.Write();
            if (ex.InnerException != null)
            {
                LogException(ex.InnerException, title, errorcode);
            }
        }
        /// <summary>
        /// Logs Exception which handled at given method name and given class name.
        /// </summary>
        /// <param name="ex">handled exception</param>
        /// <param name="className">class name</param>
        /// <param name="methodName">method name</param>
        public static void LogMethod(Exception ex, string className, string methodName)
        {
            try
            {
                FreeLogger _log = new FreeLogger()
                {
                    LogCode    = string.Format("{0}_{1}_ERR", className, methodName).Replace(' ', '_'),
                    LogType    = LogTypes.Error,
                    Message    = ex.Message,
                    StackTrace = ex.StackTrace,
                    Title      = string.Format("An Exception handled at {0} method in {1} class.", methodName, className)
                };
                _log.Write();

                if (ex.InnerException != null)
                {
                    LogMethod(ex.InnerException, className, methodName);
                }
            }
            catch (Exception)
            {
            }
        }
 /// <summary>
 /// Logs exception with given parameters.
 /// </summary>
 /// <param name="ex">Exception object</param>
 /// <param name="title">Exception Title.</param>
 /// <param name="errorcode">Error Code for Exception.</param>
 /// <param name="userId">User Id</param>
 public static void LogException(Exception ex, string title, string errorcode, int userId)
 {
     try
     {
         FreeLogger freeLogger = new FreeLogger()
         {
             Title      = title,
             LogCode    = errorcode,
             StackTrace = ex.StackTrace,
             Message    = ex.Message,
             LogType    = LogTypes.Error,
             UserId     = userId
         };
         freeLogger.Write();
         if (ex.InnerException != null)
         {
             LogException(ex.InnerException, title, errorcode, userId);
         }
     }
     catch (Exception)
     {
         throw;
     }
 }