Exemple #1
0
    public void SaveLog()
    {
        Queue allQueue = Coo.debugLogManager.allQueue;

        string str = @"<html>
<head>
<meta charset='utf-8' />
</head>

<body>
";

        while (allQueue.Count > 0)
        {
            DebugLogVO vo = allQueue.Dequeue() as DebugLogVO;

            string stackTrace = vo.stackTrace;
            string logString  = vo.logString;
            //			logString = logString.Replace("<color=", "<font color=\"").Replace(">", "\">").Replace("</color\">", "</font>");

            switch (vo.logType)
            {
            case LogType.Log:
                str += string.Format("<p><h3 style=\"color: {1}; \"><pre>[Log] {0}</pre></h3><br><pre>{2}</pre></p>", logString, "#008844", stackTrace);
                break;

            case LogType.Warning:
                str += string.Format("<p><h2 style=\"color: {1}; margin-bottom: 12px;\"><pre>[Warning] {0}</pre></h2><br><pre>{2}</pre></p>", logString, "#ffa500", stackTrace);
                break;

            case LogType.Assert:
            case LogType.Error:
            case LogType.Exception:
                str += string.Format("<p><h2 style=\"color: {1}; margin-bottom: 12px;\"><pre>[Error] {0}</pre></h2><br><pre>{2}</pre></p>", logString, "#ff0000", stackTrace);
                break;

            default:
                break;
            }
        }
        str += @"</body></html>";


        string filesPath = PathUtil.DataPath + (Application.isEditor ? "../../log.html" : "log.html");

        PathUtil.CheckPath(filesPath, true);
        if (File.Exists(filesPath))
        {
            File.Delete(filesPath);
        }
        FileStream   fs = new FileStream(filesPath, FileMode.CreateNew);
        StreamWriter sw = new StreamWriter(fs);

        sw.Write(str);
        sw.Close(); fs.Close();

        string url = PathUtil.DataUrl + (Application.isEditor ? "../../log.html" : "log.html");

        Application.OpenURL(url);
    }
Exemple #2
0
    private void CatchLogInfo(string logString, string stackTrace, LogType type)
    {
        //		if(preVO != null && preVO.logString == logString && preVO.stackTrace == stackTrace && type == type)
        //		{
        //			return;
        //		}

        vo            = new DebugLogVO();
        vo.logString  = logString;
        vo.stackTrace = stackTrace;
        vo.logType    = type;

        preVO = vo;

        switch (type)
        {
        case LogType.Log:
            logQueue.Enqueue(vo);
            break;

        case LogType.Warning:
            warningQueue.Enqueue(vo);
            break;

        case LogType.Assert:
        case LogType.Error:
        case LogType.Exception:
            errorQueue.Enqueue(vo);
            break;

        default:
            break;
        }

        allQueue.Enqueue(vo);
    }
Exemple #3
0
    void Update()
    {
        if (debugLogType == DebugLogType.None)
        {
            return;
        }

        if (text.text.Split('\n').Length > 100)
        {
            return;
        }

        if (logQueue == null)
        {
            allQueue     = Coo.debugLogManager.allQueue;
            logQueue     = Coo.debugLogManager.logQueue;
            warningQueue = Coo.debugLogManager.warningQueue;
            errorQueue   = Coo.debugLogManager.errorQueue;
        }


        if (debugLogType == DebugLogType.All && allQueue.Count > 0)
        {
            vo = allQueue.Dequeue() as DebugLogVO;
        }
        else if (debugLogType == DebugLogType.Log && logQueue.Count > 0)
        {
            vo = logQueue.Dequeue() as DebugLogVO;
        }
        else if (debugLogType == DebugLogType.Warning && warningQueue.Count > 0)
        {
            vo = warningQueue.Dequeue() as DebugLogVO;
        }
        else if (debugLogType == DebugLogType.Error && errorQueue.Count > 0)
        {
            vo = errorQueue.Dequeue() as DebugLogVO;
        }
        else
        {
            vo = null;
        }

        if (vo == null)
        {
            return;
        }

        string stackTrace = vo.stackTrace;

        //		if(stackTrace.Length > 500)
        //		{
        //			string[] lines = stackTrace.Split('\n');
        //			stackTrace = "";
        //			for(int i = 0; i < (lines.Length < 20 ? lines.Length : 20); i ++)
        //			{
        //				stackTrace += lines[i] + "\n";
        //			}
        //		}

        text.text += "\n";
        switch (vo.logType)
        {
        case LogType.Log:
            text.text += string.Format("<color='{1}'>{0}</color>\n{2}", vo.logString, "#008844", stackTrace);
            break;

        case LogType.Warning:
            text.text += string.Format("<color='{1}'>{0}</color>\n{2}", vo.logString, "#ffa500", stackTrace);
            break;

        case LogType.Assert:
        case LogType.Error:
        case LogType.Exception:
            text.text += string.Format("<color='{1}'>{0}</color>\n{2}", vo.logString, "#ff0000", stackTrace);
            break;

        default:
            break;
        }
        //		text.text +=  "Length=" + text.text.Length.ToString() + " linenum="+ (text.text.Split('\n').Length);
        //		try{
        text.rectTransform.sizeDelta = new Vector2(text.rectTransform.sizeDelta.x, text.preferredHeight > (text.transform.parent as RectTransform).sizeDelta.y ? text.preferredHeight :  (text.transform.parent as RectTransform).sizeDelta.y);
        //		}
        //		catch()
        //		{
        //
        //		}
    }