// Constants #endregion #region ToLogString public static string ToLogString(this Exception excep, StackFrame stackFrame, object AdditionalInfo) { StringBuilder sb = new StringBuilder(); #if (!UNITY_IPHONE) // stack frame info MethodBase methodBase = stackFrame.GetMethod(); sb.AppendFormat("Exception Location:{0}", nl); sb.AppendFormat("{0}Namespace: {1}{2}", tab, methodBase.ReflectedType.Namespace, nl); sb.AppendFormat("{0}Class Name: {1}{2}", tab, methodBase.ReflectedType.Name, nl); sb.AppendFormat("{0}Method Name: {1}{2}", tab, methodBase.Name, nl); #endif // build the exception info string sb.AppendFormat("Exception Information:{0}", nl); sb.AppendFormat("{2}Message: {0}{1}", excep.Message, nl, tab); sb.AppendFormat("{2}Source: {0}{1}{1}", excep.Source, nl, tab); sb.AppendFormat("Stack Trace: {1} {0}{1}{1}", excep.StackTrace, nl); // inner exception if (excep.InnerException != null) { sb.AppendFormat("{1}{0}Inner Exception Info:{0}", nl, tab); sb.AppendFormat("{2}{2}Message: {0}{1}", excep.InnerException.Message, nl, tab); sb.AppendFormat("{2}{2}Source: {0}{1}", excep.InnerException.Source, nl, tab); sb.AppendFormat("{2}{2}Stack Trace: {0}{1}", excep.InnerException.StackTrace, nl, tab); } // additional info if (AdditionalInfo != null) { sb.AppendFormat("Additional Object Info{0}", nl); #if (!UNITY_IPHONE) sb.AppendFormat("{0}{1}{2}", tab, ObjectDumper.GetObjectValue(AdditionalInfo), nl); #else sb.AppendFormat("{0}{1}{2}", tab, AdditionalInfo.ToString(), nl); #endif } // device info sb.AppendFormat("Device Info:{0}", nl); sb.AppendFormat("{2}Device OS: {0} {1}", SystemInfo.operatingSystem, nl, tab); sb.AppendFormat("{2}Device Model: {0} {1}", SystemInfo.deviceModel, nl, tab); sb.AppendFormat("{2}Device Type: {0} {1}", SystemInfo.deviceType, nl, tab); sb.AppendFormat("{2}Device Name: {0} {1}", SystemInfo.deviceName, nl, tab); sb.AppendFormat("{2}Device ID: {0} {1}", SystemInfo.deviceUniqueIdentifier, nl, tab); sb.AppendFormat("{2}Device Memory: {0} {1}", SystemInfo.systemMemorySize, nl, tab); return(sb.ToString()); }