public void InsertErrorLog(API_Error apiError) { try { using (var sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["MainConnection"].ConnectionString)) { sqlConnection.Open(); var cmd = new SqlCommand("API_ErrorLogging", connection: sqlConnection) { CommandType = CommandType.StoredProcedure }; cmd.Parameters.AddWithValue("@TimeUtc", apiError.TimeUtc); cmd.Parameters.AddWithValue("@RequestUri", apiError.RequestUri); cmd.Parameters.AddWithValue("@Message", apiError.Message); cmd.Parameters.AddWithValue("@RequestMethod", apiError.RequestMethod); cmd.ExecuteNonQuery(); } } catch (Exception) { throw; } }
public override void Log(ExceptionLoggerContext context) { var ex = context.Exception; string strLogText = ""; strLogText += Environment.NewLine + "Source ---\n{0}" + ex.Source; strLogText += Environment.NewLine + "StackTrace ---\n{0}" + ex.StackTrace; strLogText += Environment.NewLine + "TargetSite ---\n{0}" + ex.TargetSite; if (ex.InnerException != null) { strLogText += Environment.NewLine + "Inner Exception is {0}" + ex.InnerException;//error prone } if (ex.HelpLink != null) { strLogText += Environment.NewLine + "HelpLink ---\n{0}" + ex.HelpLink;//error prone } var requestedURi = (string)context.Request.RequestUri.AbsoluteUri; var requestMethod = context.Request.Method.ToString(); var timeUtc = DateTime.Now; SqlErrorLogging sqlErrorLogging = new SqlErrorLogging(); API_Error apiError = new API_Error() { Message = strLogText, RequestUri = requestedURi, RequestMethod = requestMethod, TimeUtc = DateTime.Now }; sqlErrorLogging.InsertErrorLog(apiError); }