Я сделал то же, что вы говорите. Я создал ErrorPage, который отображает информацию для пользователя. Я также создал функцию, которая записывает информацию об ошибках в журналы событий ...
Для страницы, это то, что я делаю. Просто наклейте туда этикетки ...
protected void Page_Load(object sender, EventArgs e)
{
Exception ex = Server.GetLastError().GetBaseException();
this.lblMessage.Text = ex.Message;
this.lblSource.Text = ex.Source;
this.lblStackTrace.Text = ex.StackTrace;
if (AppProperties.AppEnv != AppEnvironment.PROD)
{
this.ErrorDetails.Visible = true;
}
else
{
this.ErrorDetails.Visible = false;
}
Utility.LogError();
Server.ClearError();
}
Так выглядит функция LogError ...
public static void LogError()
{
LogError(HttpContext.Current.Server.GetLastError().GetBaseException());
}
public static void LogError(Exception ex)
{
EventLog log = new EventLog();
if (ex != null)
{
log.Source = ConfigurationManager.AppSettings["EventLog"].ToString();
StringBuilder sErrorMessage = new StringBuilder();
if (HttpContext.Current.Request != null && HttpContext.Current.Request.Url != null)
{
sErrorMessage.Append(HttpContext.Current.Request.Url.ToString() + System.Environment.NewLine);
}
sErrorMessage.Append(ex.ToString());
log.WriteEntry(sErrorMessage.ToString(), EventLogEntryType.Error);
}
}