sexta-feira, 19 de fevereiro de 2010

Monitorar todos os erros da aplicação asp.net pelo global.asax

É dificil fazer uma aplicação e ela não ter nenhum bug, por isso da pra gente monitorar todos os erros pelo global.asax, nesse exemplo captura todos os erros da aplicação e grava em um arquivo "Logs.txt"

protected void Application_Error(object sender, EventArgs e)

{
HttpContext ctx = HttpContext.Current;
Exception exception = ctx.Server.GetLastError();
StringBuilder str = new StringBuilder();
str.Append(" Data: " + DateTime.Now.ToString());
str.Append("\r\n Error: " + exception.Message.ToString());
str.Append("\r\n Details: " + exception.InnerException.Message.ToString());
str.Append("\r\n URL: " + Request.Url.AbsoluteUri.ToString());
str.Append("\r\n Stack Trace: " + exception.InnerException.StackTrace.ToString());
str.Append("\r\n Request Host: " + Request.UserHostAddress.ToString());
str.Append("\r\n Host Name: " + Request.UserHostName.ToString());
str.Append("\r\n User Agent: " + Request.UserAgent.ToString());
if (Request.UrlReferrer != null)
   str.Append("\r\n URL Referrer: " + Request.UrlReferrer.ToString());
str.Append("\r\n UserName: " + Request.LogonUserIdentity.Name.ToString());
str.Append("\r\n Method: " + exception.TargetSite.ToString());
str.Append("\r\n Source: " + exception.Source.ToString() + "\r\n\r\n\r\n");

using (System.IO.StreamWriter sw = new System.IO.StreamWriter(Server.MapPath("Logs.txt"), true))
  {
       sw.WriteLine(str.ToString());
  }

}

Nenhum comentário:

Postar um comentário