In this article, we will learn How to sending Logging errors to Email in MVC
Introduction
this given below code is useful for finding the exception in login time if any exception raised at login time that will automatically send to your mail-id
if you want to store the real-time exceptions at login time you will save these exceptions at your database also
Sending Logging errors to Email
In your application inside the login function, you will set the Session[“UserName”] =obj.User; and the create the LogError() function, through HttpContext.Current.Session[“UserName”] get the username
you will format an exception Message like which user is logged in and when that exception is raised (date) this all thing you will concatenate in one string and then Send to errors to Mail
Follow given code helpful for sending Logging errors to Email in MVC
public static void LogError(Exception ex) { string message = ""; message += "Logged in User : " + HttpContext.Current.Session["UserName"]; message += Environment.NewLine; message += string.Format("Date and Time: {0}", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt")); message += Environment.NewLine; message += "-----------------------------------------------------------"; message += Environment.NewLine; message += string.Format("Message: {0}", ex.Message); message += Environment.NewLine; message += string.Format("StackTrace: {0}", ex.StackTrace); message += Environment.NewLine; message += string.Format("Source: {0}", ex.Source); message += Environment.NewLine; message += string.Format("TargetSite: {0}", ex.TargetSite.ToString()); message += Environment.NewLine; message += "-----------------------------------------------------------"; message += Environment.NewLine; if (!Directory.Exists(HttpContext.Current.Server.MapPath("~/ErrorLog/"))) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/ErrorLog")); } string path =HttpContext.Current.Server.MapPath("~/ErrorLog/ErrorLog.txt"); using (StreamWriter writer = new StreamWriter(path, true)) { writer.WriteLine(message); writer.Close(); } SendErrorToMail(message); }
you will pass error message as a parameter to SendingErrorToMail() method and then enter your email id, port, password, Host in Smptclient see given below code
private static void SendErrorToMail(string errorMessage) { string ToAddress = ConfigurationManager.AppSettings["MailAddress"]; StringBuilder errorMsg = new StringBuilder(); MailAddress to = new MailAddress(ToAddress); MailAddress from = new MailAddress("yourmail"); MailMessage message = new MailMessage(from, to); message.Subject = "Error Message"; message.Body = errorMessage; message.BodyEncoding = Encoding.UTF8; message.IsBodyHtml = true; SmtpClient client = new SmtpClient(); client.UseDefaultCredentials = true; client.Credentials = new System.Net.NetworkCredential("yourmail", "password"); client.Port = 587; // client.Host = "hosting mail"; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = true; //Add this line to bypass the certificate validation System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate (object s, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }; try { client.Send(message); } catch (Exception ex) { LogError(ex); } }
Saving logging Exceptions In your database
After sending these logging error message to Email we will save these errors in the database
step 1:
Create a table in your database table name like LoginException by using given below SQL Query
CREATE TABLE [dbo].[LoginException]( [ID] [int] IDENTITY(1,1) NOT NULL, [UserName] [nvarchar](15) NOT NULL, [ExceptionMessage] [ntext] NULL, [ExceptionCreatedDate] Datetime NULL, )
Step 2:
right-click on model folder create a class name like LoginException see the given below snippet code
public class LoginException { public int ID { get; set; } public string UserName { get; set; } public string ExceptionMessage { get; set; } public DateTime ExceptionCreatedDate { get; set; } }
step 3:
Right-click on your project Add Ado.Net entity data model or you will use Ado.net
if you are using Ado.Net entity data model use given below snippet code for saving logging errors in your database
public class Loginrepo { TestDBEntities context = new TestDBEntities(); public void SaveLoginExceptions(string username,string exceptionmessage) { LoginException obj = new LoginException(); obj.UserName = username; obj.ExceptionMessage = exceptionmessage; obj.ExceptionCreatedDate = DateTime.Now; context.LoginExceptions.Add(obj); context.SaveChanges(); } }
you will call this SaveLoginExceptions() method before sending the error to mail and pass username, exception message as parameters
Loginrepo obj=new Loginrepo(); obj.SaveLoginExceptions(HttpContext.Current.Session["UserName"],ex);
if you are using Ado.net in your application Add given snippet code for saving logging exceptions in MVC
public static string InsertIntoTable(string Query) { SqlConnection con = Functions.con(); SqlCommand com = new SqlCommand(); com.Connection = con; if (Query.Length>0) { com.Connection.Open(); com.CommandText =Query; string IdentityColumnValue= com.ExecuteScalar().ToString(); com.Connection.Close(); con.Close(); return IdentityColumnValue; } else return ""; }
call this InsertIntoTable() Ado.Net Db helper method for saving logging error and pass the given below query as a string format
string qry = "insert into LoginException(UserName,ExceptionMessage,ExceptionCreatedDate)values(" + HttpContext.Current.Session["UserName"] + "," + Exceptionmessage + "," + DateTime.Now + ")";
Output:

- How to create dynamic form fields using jQuery - January 4, 2021
- What is CTS (Common Type System) in .Net - October 16, 2020
- What is main method in c# - October 13, 2020
Hi there, I discovered your web site by means of Google even as searching for a related topic, your web site got here up, it looks good. I have bookmarked it in my google bookmarks.
Saved as a favorite!, I like your blog!
Bookmarked!, I like your web site!
Bookmarked!, I like your website!
Bookmarked!, I like your web site!