Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }