Código fuente, clase para controlar los errores.
Esta vez no voy a escribir un artículo sobre cómo hacer las cosas o explicando alguna funcionalidad. Voy a dejaros una clase completamente funcional para controlar los errores en .NET y guardarlos en base de datos o enviarlos por mail. Actualizado el 12.03.2011
Una de las cosas que más odio en el mundo de la programación es que las aplicaciones fallen y no se sepa por qué, “poltergeist”.
Con esta clase que os dejo, ExceptionManager, podréis controlar esos errores y guardarlos en base de datos, para revisarlos más tarde o enviarlos por mail.
Es una clase simple y fácilmente ampliable y mejorable.
No voy a explicar el funcionamiento de la clase, para eso tenéis el código fuente y os lo miráis, lo que voy a explicar es como utilizarla e incorporarla en vuestras aplicaciones.
La clase se compone de tres métodos públicos:
public static void PublisherCustomLog(string log, bool mail)
public static void WriteFileLog(Exception Ex, string method, string comment, string query, string fichero, bool mail)
Y una tabla que se puede incluir en cualquier base de datos
Hay que añadir cuatro entradas en el web config de la aplicación:
<add key=”ConnectionLOG” value=”Data Source=ULISES;Initial Catalog=PUBS;user id=sa;password=as”/>
<add key=”APP” value=”PRUEBAS”/>
<add key=”LogFile” value=”c:”/>
En la sección appSettings:
: Dirección de mail donde se enviarán las notificaciones de error
: ConnectionString para grabar los datos en la base de datos.
: Aplicación que se monitoriza (por si hay varias que utilizan la misma base de datos)
: ruta donde se graban los logs en disco.
Este método graba en la base de datos los errores que se producen en un try … catch y se pasan los siguientes parámetros:
: Exception que ha producido el error.
: Nombre del método que produce el error
: Un comentario, si es necesario.
: Sentencia SQL o Stored Procedure si se ejecuta una sentencia
: True o false, true envía mail, false no lo envía.
Escribe un texto en la base de datos para hacer un seguimiento. Parámetros:
: Texto que se quiere escribir en la base de datos:
: True o false, true envía mail, false no lo envía.
Este método es igual que el método PublisherLogSql pero escribe en un fichero de disco en lugar de base de datos.
Ahora vamos a ver el funcionamiento de la clase con un ejemplo práctico, también se incluye el código.
El ejemplo simplemente se conecta con la base de datos Northwind y hace un listado con una query errónea para comprobar el funcionamiento de la clase.
Lo primero que hacemos es incorporar la librería ExceptionManager a las referencias del proyecto, con el botón derecho encima del proyecto, seleccionamos añadir referencias y en la ventana que sale buscamos la librería en disco.
Después la incluimos en nuestra página aspx.
Y ya podemos utilizarla:
try {
DataSet ds = new DataSet();
sSQL = “SELECT CustomerID, ContactName222 FROM Customers Order by ContactName”;
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
SqlCommand cmd = new SqlCommand(sSQL, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
cmd.Dispose();
conn.Dispose();
conn.Close();
}
catch (Exception EX) {
SqlExceptionManager.WriteFileLog(EX, “Page_Load”, “NO COMMENT”, sSQL, “error.txt”, false);
}
Con este ejemplo podemos ver el funcionamiento de la clase ExceptionManager y si vais a la tabla veréis los errores guardados y los logs.
Y esto es todo, feliz programming!!
Saludos
Alex
Librería para controlar errores ExceptionManager
Ejemplo para utilizar la librería ExceptionManager



