Exemplo n.º 1
0
        public void Collect(IAnalyzeResultReporter resultReporter, ILogAnalyzeModule module)
        {
            if (reportText == null)
            {
                reportText = new StringBuilder();
            }

            reportText.AppendLine("【" + module.ModuleName + "】");
            reportText.AppendLine(resultReporter.Report());
        }
Exemplo n.º 2
0
        public LogReporter Analyze(string logFilePath = "~/Library/Logs/Unity/Editor.log")
        {
            if (registeredModules == null || registeredModules.Count == 0)
            {
                Debug.LogWarning("no modules registered.");
                return(null);
            }

            /*
             * Mac OS X	~/Library/Logs/Unity/Editor.log
             * Windows XP *	C:\Documents and Settings\username\Local Settings\Application Data\Unity\Editor\Editor.log
             * Windows Vista/7 *	C:\Users\username\AppData\Local\Unity\Editor\Editor.log
             */

            //FOR DEBUG
//			logFilePath = "~/Desktop/Editor.log";

            if (logFilePath.StartsWith("~"))
            {
                string home = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
                logFilePath = logFilePath.Replace("~", home);
            }

            string logContent = System.IO.File.ReadAllText(logFilePath);

            if (string.IsNullOrEmpty(logContent))
            {
                Debug.LogError("log file not exist or is empty.");
                return(null);
            }

            LogReporter logReporter = new LogReporter();

            foreach (ILogAnalyzeModule m in registeredModules)
            {
                IAnalyzeResultReporter rp = m.Analyze(logContent, "text");

                if (rp != null)
                {
                    logReporter.Collect(rp, m);
                }
                else
                {
                    Debug.LogError("log reporter is null");
                }
            }

            return(logReporter);
        }