Que es Yet Another Exception Logging System
Yet
Another Exception Logging System (YAELS) es un sistema que permite el
manejo de exceptiones de una manera personalizada. Con él podras, por
ejemplo, recibir un correo electrónico con toda la información de la
excepción.
El sistema está hecho usando el modelo de
proveedores de Microsoft .NET Framework 2.0 por lo que es muy fácil
configurarlo y extenderlo para adaptarlo a tus necesidades. La versión
actual es la 0.1.0 y la puedes descargar desde su página en Codeplex
Puedes probarlo aquí
Notas de versión
v.0.1.1
- Se ha cambiado el nombre del proyecto así como el espacio de nombres del IndigoHelper.Helpers a Microcode.YAELS.
- Solucionado error en la configuración del proyecto para el uso de la libreria.
- Solucionado error en la llamada al proveedor en la clase LogHelper.
v.0.1.0
- Creada clase base LogHelperProvider.
- Creada
clase MailLogHelperProvider para logear las exepciones por correo
electrónico. Esta clase obtiene los parámetros necesarios para su
configuración como el host o el puerto del servidor de correo del
fichero de configuración (app.config or web.config).
- Creada clase LogHelper con el método estático Save, que simplifica el uso del proveedor.
Instalación
Añadir las siguiente referencias al proyecto
- Indigo.Helpers
- System.configuration
- System.Web
Añadir las siguientes lineas en el fichero de configuración
<!-- configSections -->
<configSections>
<section name="LogHelperProviderConfiguration" type="Microcode.YAELS.LogHelperProviderConfiguration, Microcode.YAELS"/>
</configSections>
<!-- End configSections -->
<!-- LogHelperProviderConfiguration -->
<LogHelperProviderConfiguration default="MailLogHelperProvider">
<providers>
<add name="MailLogHelperProvider"
type="Microcode.YAELS.MailLogHelperProvider, Microcode.YAELS"
smtpClient="localhost"
smtpPort="25"
userName="username"
password="password"
from="from@noreply.com"
to="to@noreply.com"
isBodyHtml="true"
sendAsync="true" />
</providers>
</LogHelperProviderConfiguration>
<!-- End LogHelperProviderConfiguration -->
Ejemplo de uso
try
{
// Código.
throw new Exception();
}
catch (Exception ex)
{
LogHelper.Save(ex);
}
Configuración
|
Clave
|
Descripción
|
Requerido
|
Versión
|
|
smtpClient
|
Servidor de correo saliente.
|
Si
|
0.1.0
|
|
smtpPort
|
Puerto del servidor de correo saliente.
|
Si
|
0.1.0
|
|
userName
|
Nombre de usuario si el servidor de correo saliente requiere credenciales.
|
No
|
0.1.0
|
|
password
|
Contraseña de usuario si el servidor de correo saliente requiere credenciales.
|
No
|
0.1.0
|
|
from
|
Direccion de correo del remitente.
|
Si
|
0.1.0
|
|
to
|
Direccion de correo del destinatario. Si son varias se separan con ','.
|
Si
|
0.1.0
|
|
isBodyHtml
|
Se envia el correo en formato.
|
No. Por defecto es verdadero.
|
0.1.0
|
|
sendAsync
|
Se envia el correo de manera asíncrona.
|
No. Por defecto es verdadero.
|
0.1.0
|
|
throwException
|
Las excepciones generadas en la liberia se lanzan.
|
No. Por defecto es false.
|
0.1.2
|
|
subject
|
Asunto del correo.
|
No. Por defecto es "Error".
|
0.1.2
|
|
fields
|
Campos que se notifican en el correo.
|
No. Por defecto es
message|source|stackTrace|targetSite|date|exceptionType|machineName|oSVersion|userDomainName|userName|version
- message: Mensaje que describe la actual excepción.
- source: Nombre de la aplicación o del objeto que causó el error.
- stackTrace: Pilla de llamadas.
- targetSite: Método que produce la excepción.
- date: Fecha en la que se procude la excepción.
- exceptionType: Tipo de la excepción.
- machineName: Nombre de la máquina.
- oSVersion: Sistema operativo.
- userDomainName: Nombre del dominio.
- userName: Nombre del usuario de la sesión en la que corre la aplicación.
- version: Versión del framework.
|
0.1.2
|
Colabora
Este proyecto está abierto a cualquier colaboración. Si encuentras
algún fallo en el código y crees que puedes ayudar de alguna manera, no
dudes en ponerte en contacto conmigo por correo electronico indigo .
blogging @ gmail . com (quita los espacios).