/// <summary> /// 根据异常及运行中的相关信息构造完整的异常日志信息 /// </summary> /// <param name="ex">Exception实例(必选)</param> /// <param name="context">HttpContext实例(可选)</param> /// <param name="dbCommand">DbCommand实例(可选)</param> /// <returns></returns> public static ExceptionInfo Create(Exception ex, HttpContext context, DbCommand dbCommand) { if (ex == null) { throw new ArgumentNullException("ex"); } ExceptionInfo info = new ExceptionInfo(); info.FillBaseInfo(); info.Message = ex.Message; info.ExceptionType = ex.GetType().FullName; info.Exception = ex.ToString(); if (context != null) { info.HttpInfo = HttpInfo.Create(context); } if (dbCommand != null) { info.SqlInfo = SqlInfo.Create(dbCommand); } return(info); }
/// <summary> /// 根据异常及运行中的相关信息构造完整的异常日志信息 /// </summary> /// <param name="ex">Exception实例(必选)</param> /// <param name="context">HttpContext实例(可选)</param> /// <param name="dbCommand">DbCommand实例(可选)</param> /// <returns></returns> public static ExceptionInfo Create(Exception ex, HttpContext context, DbCommand dbCommand) { if (ex == null) { throw new ArgumentNullException("ex"); } ExceptionInfo info = new ExceptionInfo(); info.FillBaseInfo(); info.Message = ex.Message; // TODO: 应该保证能拿到一个有价值的异常消息 info.ExceptionType = ex.GetType().FullName; info.Exception = ex.ToString(); if (ClownFish.Log.Serializer.WriterFactory.Config.LogEnvironmentInfo) { try { info.Environment = EnvironmentInfo.GetCurrent(); } catch { // 如果获取机器环境信息失败,就直接忽略 } } if (context != null) { info.HttpInfo = HttpInfo.Create(context); } if (dbCommand != null) { info.SqlInfo = SqlInfo.Create(dbCommand); } return(info); }