// Log 404 or 400 errors public async Task LogHttpResponseException(HttpResponseExceptionVM vm) { string domain = HttpContext.Request.Host.Value; string ipAddress = _clientIP.GetClientIP(); try { await _context.HttpResponseException.AddAsync(new HttpResponseException { CreateDate = DateTime.UtcNow, Status = vm.Status, Error = vm.Error, IpAddress = ipAddress, Message = vm.Message, UserId = vm.UserId ?? "ANONYMOUS" }); await _context.SaveChangesAsync(); } catch (Exception ex) { // 이멜 너무 많이 들어올까봐 커맨트아웃함 //await _email.SendEmailAsync("*****@*****.**", "*****@*****.**", "[엑소더스 코리아] HttpResponseException 추가 오류", ex.ToString(), null); } // Skip sending email notification for Not Found 404 error //if (vm.Status != 404) //{ // vm.Username = vm.Username ?? "ANONYMOUS"; // string subject = "[엑소더스 코리아] " + vm.Status + " 오류"; // string body = "Domain: " + domain + "\r\n\r\n" // + "Status: " + vm.Status + "\r\n\r\n" // + "Username: "******"\r\n\r\n" // + "IP Address: " + ipAddress + "\r\n\r\n" // + "Error: " + vm.Error + "\r\n\r\n" // + "Message: " + vm.Message + "\r\n\r\n" // + "Inputs: " + "\r\n\r\n"; // if (HttpContext.Request.HasFormContentType) // { // var form = HttpContext.Request.Form.ToDictionary(x => x.Key, x => x.Value.ToString()); // foreach (KeyValuePair<string, string> entry in form) // body += "Control: " + entry.Key + "; Value: " + entry.Value + "\r\n"; // } // await _email.SendEmailAsync("*****@*****.**", "*****@*****.**", subject, body, null); //} }
public async Task <IActionResult> LogLoggedInHttpResponseException([FromBody] HttpResponseExceptionVM vm) { await _logDataService.LogHttpResponseException(vm); return(new NoContentResult()); }