public static void SQLExceptionToLog(SqlError strEx, string strVoid) { if (strEx == null || strVoid == null) { return; } LogToStatus("[SQLException Void] : " + strVoid, enLogLevel.ERROR); LogToStatus("[SQLException Type] : " + strEx.GetType(), enLogLevel.ERROR); LogToStatus("[SQLException Class] : " + strEx.Class, enLogLevel.ERROR); LogToStatus("[SQLException LineNumber] : " + strEx.LineNumber.ToString(), enLogLevel.ERROR); LogToStatus("[SQLException Message] : " + strEx.Message, enLogLevel.ERROR); LogToStatus("[SQLException Number] : " + strEx.Number, enLogLevel.ERROR); LogToStatus("[SQLException Procedure] : " + strEx.Procedure, enLogLevel.ERROR); LogToStatus("[SQLException Server] : " + strEx.Server, enLogLevel.ERROR); LogToStatus("[SQLException State] : " + strEx.State.ToString(), enLogLevel.ERROR); LogToStatus("[SQLException Message] : " + strEx.Message, enLogLevel.ERROR); LogToStatus("[SQLException Source] : " + Environment.NewLine + strEx.Source, enLogLevel.ERROR); }
public static void SendSQLErrorToMail(SqlException ex, SqlError exmail, string filename) { try { var configuration = ConfigurationHelper.GetConfiguration(Directory.GetCurrentDirectory()); string server = configuration.GetSection("Smtp")["ServerName"]; string mailerror = configuration.GetSection("SendMail")["MailError"]; string mailit = configuration.GetSection("SendMail")["MailIt"]; string exceptionmailsubject = configuration.GetSection("SendMail")["ExceptionMailSubject"]; //split liste des personnes à prévenir String[] substrings = mailerror.Split(";"); string ErrorlineNo = exmail.LineNumber.ToString(); string Errormsg = exmail.GetType().Name.ToString(); string extype = exmail.GetType().ToString(); string sp = exmail.Procedure.ToString(); string ErrorLocation = exmail.Message.ToString(); using (var message = new MailMessage()) { message.Subject = "ErrorMVCCoreSql"; message.Body = $"<h1>Error: {ex.Message.Replace(Environment.NewLine, "<br />")}</h1>{ex.Source.Replace(Environment.NewLine, "<br />")}<hr />"; message.Body += $"<b>Date: " + DateTime.Now.ToString() + "</b><br />"; message.Body += $"CurrentCulture.DisplayName: {CultureInfo.CurrentCulture.DisplayName}<hr />"; //////////////////////////ATTENTION CECI NE FONCTIONNE PAS SUR IIS/////////////////////// //message.Body += $"Server IIS: {System.Security.Principal.WindowsIdentity.GetCurrent().Name} <br /> "; //////////////////////////ATTENTION CECI NE FONCTIONNE PAS SUR IIS/////////////////////// message.Body += $"Server SQL: {ex.Server }<hr />"; message.Body += $"File: {filename}<br />"; message.Body += $"Procedure: {sp}<br />"; message.Body += $"Line: {ErrorlineNo}<br />"; message.Body += $"ErrorMessage: {Errormsg}<br />"; message.Body += $"Exception Type: {extype}<br />"; message.Body += $"Error Details: {ErrorLocation}<br />"; message.Body += $"Error Page Url: <hr />"; //message.Body += $"Path: {request.Path}<br />"; //message.Body += $"QueryString: {request.QueryString}<br />"; //message.Body += $"RawTarget: {request.RawTarget}<br />"; //message.Body += $"Protocol: {request.Protocol}<br />"; //message.Body += $"StatusCode: {context.Response.StatusCode}<hr />"; //message.Body += $"User Identity: {context.User.Identity.Name}<br />"; //message.Body += $"Host: {context.Request.Host}<br />"; //message.Body += $"Method: {context.Request.Method}<hr />"; message.Body += $"<b>Error:</b><br />"; message.Body += $"HelpLink: {ex.HelpLink }<br />"; message.Body += $"Type: {ex.GetType() }<br />"; message.Body += $"Values: {ex.Data.Values}<br />"; message.Body += $"TargetSite : {ex.TargetSite }<hr />"; //message.Body += $"Referer: {context.Request.Headers["Referer"]}<hr />"; //message.Body += $"User-Agent: {context.Request.Headers["User-Agent"]}<br />"; //message.Body += $"IP Address: {httpConnectionFeature?.LocalIpAddress}<br />"; if (ex.StackTrace != null) { message.Body += $"<b>Stack Trace</b><br />{ex.StackTrace.Replace(Environment.NewLine, "<br />")}"; } if (ex.InnerException != null) { message.Body += $"<hr /><b>Inner Exception</b><br />{ex.InnerException?.Message.Replace(Environment.NewLine, "<br />")}<hr />"; } message.IsBodyHtml = true; foreach (var substring in substrings) { message.To.Add(new MailAddress(substring)); } message.From = new MailAddress(mailit, exceptionmailsubject); using (var smtpClient = new SmtpClient(server)) { smtpClient.Send(message); } } } catch (Exception em) { em.ToString(); } }