/// <summary> /// Guarda un log con la Excepcion y luego levanta una ventana emergente. /// </summary> /// <param name="ex"></param> public void GestionExcepciones(Exception ex) { try { #region Manejo de Directorio de LOG Boolean oLogActivo = Boolean.Parse(System.Configuration.ConfigurationManager.AppSettings["oLogActivo"]); if (!oLogActivo) return; string logPath = System.Configuration.ConfigurationManager.AppSettings["oLogPath"]; string logNombre = System.Configuration.ConfigurationManager.AppSettings["oLogNombre"]; //Crea el directorio. if (!System.IO.Directory.Exists(logPath)) System.IO.Directory.CreateDirectory(logPath); string oLogPath = string.Format("{0}\\{1}", logPath, logNombre); //Crea el archivo. if (!System.IO.File.Exists(oLogPath)) System.IO.File.CreateText(oLogPath); #endregion //Variables string informacion = string.Empty; string message; string source; string stackTrace; //Log StringBuilder msgLog = new StringBuilder(); msgLog.AppendLine("*********************************************************************************"); //Validacion sobre GenericException string exceptionName = ex.GetType().FullName; if ((exceptionName.Contains("GenericException"))) { #region "GenericException" GenericException genericEx = ((FaultException<GenericException>)ex).Detail; switch (genericEx.ExceptionType) { case enuExceptionType.SqlException: Titulo = "Error en Base de Datos"; Detalle = "Se ha producido un error al realizar una acción en la Base de Datos."; break; case enuExceptionType.ServicesException: Titulo = "Error en Servicio"; Detalle = "Se ha producido un error al realizar la consulta al Servicio."; break; case enuExceptionType.BusinessLogicException: Titulo = "Error en Negocio"; Detalle = "Se ha producido un error al realizar una acción en el negocio."; break; default: Titulo = "Error en la Aplicación"; Detalle = "Se ha producido un error interno en la aplicación."; break; } informacion = string.Format("{0} {1}", genericEx.Mensaje, genericEx.Informacion); message = genericEx.Mensaje; source = genericEx.Origen; stackTrace = genericEx.Trace; #endregion msgLog.AppendFormat("{0} - {1}", DateTime.Now, genericEx.ExceptionType); } else { #region Excepcion no controlada message = ex.Message; source = ex.Source; stackTrace = ex.StackTrace; Titulo = "Error en la Aplicación"; Detalle = "Se ha producido un error interno en la aplicación."; #endregion msgLog.AppendFormat("{0} - {1}", DateTime.Now, enuExceptionType.Exception); } //Borrar al realizar la entraga //Detalle = message + "<br/>" + source + "<br/>" + stackTrace; //FIN Borrar al realizar la entraga #region Guarda la Info en el Log //Informacion msgLog.AppendLine(); msgLog.Append(string.Format("Informacion: {0}", informacion)); msgLog.AppendLine(); //Message msgLog.Append(string.Format("Message: {0}", message)); msgLog.AppendLine(); //Source msgLog.Append(string.Format("Source: {0}", source)); msgLog.AppendLine(); //StackTrace msgLog.Append(string.Format("StackTrace: {0}", stackTrace)); msgLog.AppendLine(); msgLog.AppendLine(); msgLog.AppendLine("*********************************************************************************"); EDUARLog objLog = new EDUARLog(oLogPath, true); objLog.write(msgLog.ToString()); #endregion CargarPresentacion(false); } catch (Exception) { } }
/// <summary> /// Guarda un log con la informacion recibida por parametro. /// </summary> /// <param name="exepcionControlada"></param> public void GestionExcepcionesLog(Exception exepcionControlada) { try { #region Manejo de Directorio de LOG Boolean oLogActivo = Boolean.Parse(System.Configuration.ConfigurationManager.AppSettings["oLogActivo"]); if (!oLogActivo) return; string logPath = System.Configuration.ConfigurationManager.AppSettings["oLogPath"]; string logNombre = System.Configuration.ConfigurationManager.AppSettings["oLogNombre"]; //Crea el directorio. if (!System.IO.Directory.Exists(logPath)) System.IO.Directory.CreateDirectory(logPath); string oLogPath = string.Format("{0}\\{1}", logPath, logNombre); //Crea el archivo. if (!System.IO.File.Exists(oLogPath)) System.IO.File.CreateText(oLogPath); #endregion //Log StringBuilder msgLog = new StringBuilder(); msgLog.AppendLine("*********************************************************************************"); msgLog.AppendFormat("{0} - {1}", DateTime.Now, enuExceptionType.Exception); //Message msgLog.Append(string.Format("Message: {0}", exepcionControlada.Message)); msgLog.AppendLine(); //Source msgLog.Append(string.Format("Source: {0}", exepcionControlada.Source)); msgLog.AppendLine(); //StackTrace msgLog.Append(string.Format("StackTrace: {0}", exepcionControlada.StackTrace)); msgLog.AppendLine(); msgLog.AppendLine(); msgLog.AppendLine("*********************************************************************************"); EDUARLog objLog = new EDUARLog(oLogPath, true); objLog.write(msgLog.ToString()); } catch (Exception ex) { GestionExcepciones(ex); } }