Ejemplo n.º 1
0
    // 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());
    }