Publicidad

Código fuente, clase para controlar los errores.


Por Alex el 11/05/2008 , Comentar el artículo

Comparte este artículo:        




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.


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.

ExceptionManager

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 PublisherLogSql(Exception ex, string method, string comment, string query, bool mail) 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 _EXCEPTIONLOGS

Hay que añadir cuatro entradas en el web config de la aplicación:

<add key="notifyError" value="asolano@dominio.com"/>
<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:
  • notifyError: Dirección de mail donde se enviarán las notificaciones de error
  • ConnectionLOG: ConnectionString para grabar los datos en la base de datos.
  • APP: Aplicación que se monitoriza (por si hay varias que utilizan la misma base de datos)
  • LogFile: ruta donde se graban los logs en disco.
    PublisherLogSql

    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 ex: Exception que ha producido el error.
  • string method: Nombre del método que produce el error
  • string comment: Un comentario, si es necesario.
  • string query: Sentencia SQL o Stored Procedure si se ejecuta una sentencia
  • bool mail: True o false, true envía mail, false no lo envía.
    PublisherCustomLog

    Escribe un texto en la base de datos para hacer un seguimiento. Parámetros:
  • string log: Texto que se quiere escribir en la base de datos:
  • bool mail: True o false, true envía mail, false no lo envía.
    WriteFileLog

    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.

    using netveloper.library.exception;

    Y ya podemos utilizarla:

      string sSQL = string.Empty;

    try {
      DataSet ds = new DataSet();

      SqlExceptionManager.PublisherCustomLog("Inicio Applicacion", false);

      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);

      SqlExceptionManager.PublisherCustomLog("Carga DataSet", false);

      da.Fill(ds);

      SqlExceptionManager.PublisherCustomLog("Dibuja Grid View", false);

      GridView1.DataSource = ds;
      GridView1.DataBind();

      cmd.Dispose();
      conn.Dispose();
      conn.Close();
    }
    catch (Exception EX) {
      SqlExceptionManager.PublisherLogSql(EX, "Page_Load", "NO COMMENT", sSQL, false);
      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.

    Enlaces relacionadas:


  • Librería para controlar errores ExceptionManager 
    Ejemplo para utilizar la librería ExceptionManager 

    Y esto es todo, feliz programming!!
    Saludos
    Alex


    Si te ha gustado el artículo compartelo en:        


    Publicidad

    También puede interesarte:

    Limpiar datos de un combobox en winforms.

    Limpiar datos de un combobox en winforms.

    Por Alex, el 23/03/2010

    Crear, copiar y borrar bases de datos SQL Server desde c#.

    Crear, copiar y borrar bases de datos SQL Server desde c#.

    Por Alex, el 07/03/2010

    Escribir en un excel desde c#.

    Escribir en un excel desde c#.

    Por Alex, el 04/03/2010

    Llenar un Repeater o DataList con un DataTable.

    Llenar un Repeater o DataList con un DataTable.

    Por Alex, el 29/12/2008

    El evento SelectedIndexChanged no funciona

    El evento SelectedIndexChanged no funciona

    Por Alex, el 26/12/2008

    Crear un DataSet vacío

    Crear un DataSet vacío

    Por Alex, el 26/12/2008


    Añadir un comentarios:

    Nombre:
    Email: (no se publica el email)




    SIGUENOS EN

    ARCHIVO

    Publicidad

    .