J'ai fait la même chose dont vous parlez. J'ai créé un ErrorPage qui affiche des informations à l'utilisateur. J'ai également créé une fonction qui écrit les informations d'erreur dans les journaux d'événements ...
Pour la page, voici ce que je fais. Il suffit de mettre les étiquettes là-bas quelque part ...
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();
}
C'est ce que la fonction LogError ressemble ...
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);
}
}
Devrais-je penser que AppProperties et AppEnvironment sont des classes statiques personnalisées? Merci pour vos réponses. – eKek0
Oui, désolé ... AppProperties est une classe statique qui contient quelques éléments différents tels que mon environnement d'exploitation. Je montre/cache des informations basées sur l'environnement ... – RSolberg