private void RecordException(AspNetDeployEntities entities, ExceptionEntry parentException, Exception exception) { ExceptionEntry exceptionEntry = new ExceptionEntry(); exceptionEntry.Message = exception.Message; exceptionEntry.Source = exception.Source; exceptionEntry.StackTrace = exception.StackTrace; exceptionEntry.TypeName = exception.GetType().FullName; entities.ExceptionEntry.Add(exceptionEntry); if (parentException != null) { parentException.InnerExceptionEntry = exceptionEntry; } else { AspNetDeployExceptionEntry aspNetDeployExceptionEntry = new AspNetDeployExceptionEntry(); aspNetDeployExceptionEntry.TimeStamp = DateTime.UtcNow; aspNetDeployExceptionEntry.ExceptionEntry = exceptionEntry; entities.AspNetDeployExceptionEntry.Add(aspNetDeployExceptionEntry); } if (exception.InnerException != null) { this.RecordException(entities, exceptionEntry, exception.InnerException); } entities.SaveChanges(); }
public void Log(Exception exception, int?userId) { AspNetDeployEntities entities = new AspNetDeployEntities(); AspNetDeployExceptionEntry aspNetDeployExceptionEntry = new AspNetDeployExceptionEntry(); aspNetDeployExceptionEntry.TimeStamp = DateTime.UtcNow; aspNetDeployExceptionEntry.UserId = userId; aspNetDeployExceptionEntry.ExceptionEntry = this.CreateAndSaveExceptionEntryRecursive(entities, null, exception); entities.AspNetDeployExceptionEntry.Add(aspNetDeployExceptionEntry); entities.SaveChanges(); }
public ActionResult Details(int id) { this.CheckPermission(UserRoleAction.ViewLogs); AspNetDeployExceptionEntry aspNetDeployExceptionEntry = this.Entities.AspNetDeployExceptionEntry .Include("ExceptionEntry.InnerExceptionEntry") .Include("ExceptionEntry.ExceptionData") .Include("User") .OrderByDescending(ex => ex.TimeStamp) .Take(100) .First(ex => ex.Id == id); this.ViewBag.aspNetDeployExceptionEntry = aspNetDeployExceptionEntry; return(this.View()); }
private void RecordException(AspNetDeployEntities entities, ExceptionEntry parentException, IExceptionInfo lastException, MachinePublicationLog machinePublicationLog) { ExceptionEntry exceptionEntry = new ExceptionEntry(); machinePublicationLog.Exception = exceptionEntry; exceptionEntry.Message = lastException.Message; exceptionEntry.Source = lastException.Source; exceptionEntry.StackTrace = lastException.StackTrace; exceptionEntry.TypeName = lastException.TypeName; entities.ExceptionEntry.Add(exceptionEntry); if (parentException != null) { parentException.InnerExceptionEntry = exceptionEntry; } else { AspNetDeployExceptionEntry aspNetDeployExceptionEntry = new AspNetDeployExceptionEntry(); aspNetDeployExceptionEntry.TimeStamp = DateTime.UtcNow; aspNetDeployExceptionEntry.ExceptionEntry = exceptionEntry; entities.AspNetDeployExceptionEntry.Add(aspNetDeployExceptionEntry); } foreach (IExceptionDataInfo exceptionDataInfo in lastException.ExceptionData) { ExceptionEntryData data = new ExceptionEntryData(); data.ExceptionEntry = exceptionEntry; data.IsProperty = exceptionDataInfo.IsProperty; data.Name = exceptionDataInfo.Name; data.Value = exceptionDataInfo.Value; entities.ExceptionEntryData.Add(data); } if (lastException.InnerException != null) { this.RecordException(entities, exceptionEntry, lastException.InnerException, machinePublicationLog); } }