Indigo’s Weblog (All about Microsoft.NET Framework)

Entradas etiquetadas como as ‘exception’

Notificar excepciones por correo electronico

14 Mayo 2008 · No hay comentarios

En algunos entornos de producción puede ser práctico notificar por correo electrónico las excepciones que se produzcan en nuestra aplicación. Para hacer esto podemos crear un simple método estático como el siguiente


public class Log
{
public static void ExceptionToEmail(string host, int port, string userName, string password, string from, string to, string subject, Exception ex)
{
string body =
“Type: Exception.” + System.Environment.NewLine +
“Date: ” + DateTime.Now.ToString() + System.Environment.NewLine +
“Message: ” + ex.Message + System.Environment.NewLine +
“Source” + ex.Source + System.Environment.NewLine +
“StackTrace: ” + ex.StackTrace + System.Environment.NewLine +
“TargetSite: ” + ex.TargetSite.ToString() + System.Environment.NewLine +
“ExceptionType: ” + ex.GetType().ToString() + System.Environment.NewLine +
“MachineName: ” + Environment.MachineName + System.Environment.NewLine +
“OSVersion: ” + Environment.OSVersion.ToString() + System.Environment.NewLine +
“UserDomainName: ” + Environment.UserDomainName + System.Environment.NewLine +
“UserName: ” + Environment.UserName + System.Environment.NewLine +
“Version: ” + Environment.Version.ToString();
Log.EventToEmail(host, port, userName, password, from, to, subject, body);
}
public static void EventToEmail(string host, int port, string userName, string password, string from, string to, string subject, string body)
{
try
{
SmtpClient smtpClient = new SmtpClient(host, port);
smtpClient.Credentials = new NetworkCredential(userName, password);
MailMessage mailMessage = new MailMessage(from, to, subject, body);
smtpClient.Send(mailMessage);
}
catch
{
}
}
}
}

Para notificar la excepción tan sólo tendremos que llamar al método ExceptionToEmail con los parámetros de nuestro servidor de correo y la excepción a notificar. Este método, creara un mensaje con la excepción, intentado capturar la mayor información posible.

El método de envio asume que el servidor de correo electrónico necesita un nombre de usuario y contraseña para realizar en envio, aunque con poco esfuerzo podremos modificar este comportamiento.

Categorías: .NET Framework
Etiquetado: , , , ,