/// <summary> /// 写入异常日志 /// </summary> /// <param name="ex">异常对象</param> public int WriteExceptionLog(Exception ex) { int?parentID = null; int?fistID = null; do { var message = ex.Message; var logM = new ApplicationLog { Types = (byte)ApplicationLogTypeEnum.Exception, CreateTime = DateTime.Now, Title = "发生异常", Message = message, ParentID = parentID }; var exceptionM = new ApplicationLogException { StackTrace = ex.StackTrace, Types = ex.GetType().Name }; parentID = _dal.InsertExceptionLog(logM, exceptionM); if (fistID == null) { fistID = parentID; } ex = ex.InnerException; } while (ex != null); _dal.SaveChange(); return(fistID.Value); }
/// <summary> /// 插入一个异常日志 /// </summary> /// <param name="model">日志对象</param> /// <param name="exceptionModel">异常日志对象</param> public int InsertExceptionLog(ApplicationLog model, ApplicationLogException exceptionModel) { if (model.Types == (byte)ApplicationLogTypeEnum.Exception) { exceptionModel.LogID = model.ID; XmlElement logXml = GetLogNode(model); XmlElement exceptionXml = _xmlDoc.CreateElement("Exception"); exceptionXml.SetAttribute(nameof(ApplicationLogException.StackTrace), exceptionModel.StackTrace); exceptionXml.SetAttribute(nameof(ApplicationLogException.Types), exceptionModel.Types); logXml.AppendChild(exceptionXml); _xmlDoc.LastChild.AppendChild(logXml); if (_xmlDoc.LastChild.Attributes != null) { _xmlDoc.LastChild.Attributes[LastIDName].Value = logXml.Attributes[nameof(ApplicationLog.ID)].Value; } return(model.ID); } else { throw new ArgumentException("该日志不是异常日志"); } }