/* * 插入XML日志列表节点 * @Param LogListInfo 用户操作日志基本信息 * @return 如果文件不存在或者路径不正确返回false **/ public static bool initListFileNode(LogListInfo loginfo, string fullpath = "") { if (!File.Exists(currentLogFile)) { return(false); } loginfo.Id = UUID.generate(); loginfo.Duration = 0; loginfo.Path = currentLogFile; string time = DateTime.Now.ToString("HH:mm:ss"); XElement xml = XElement.Load(currentLogFile); XElement logDetails = new XElement("logDetails", new XAttribute("id", loginfo.Id), new XElement("username", loginfo.Username), new XElement("caseName", loginfo.CaseName), new XElement("beginTime", loginfo.DateTime.ToString("yyyy-MM-dd HH:mm")), new XElement("duration", loginfo.Duration), new XElement("name", loginfo.Name), new XElement("studentId", loginfo.StudentId), new XElement("path", loginfo.Path)); XElement logs = new XElement("Logs", new XElement("Log", new XElement("type", 0), new XElement("time", time), new XElement("content", "开始")) ); xml.Add(logDetails); xml.Add(logs); xml.Save(currentLogFile); return(true); }
/* * 创建日志文件 * **/ public static void CreateLogListFile() { string username = GlobalData.username; //赋值全局的用户名 if (username != null) { if (username.Trim() == "") { Debug.Log("[InitLogInfo] Username was Empty!"); username = "******"; } } string fileName = username + DateTime.Now.Ticks + ".xml"; Debug.Log("[文件名] " + fileName + "[路径名] " + Application.streamingAssetsPath + "/LogCenter/" + username + "/"); Debug.Log(Application.streamingAssetsPath + "/LogCenter/" + username + "/"); CreateLogListFile(Application.streamingAssetsPath + "/LogCenter/" + username + "/", fileName); LogListInfo logInfo = new LogListInfo(); CaseData currentCase = GlobalData.selectCase; logInfo.CaseName = currentCase.CaseTitle; logInfo.Name = GlobalData.name; logInfo.Username = GlobalData.username; logInfo.StudentId = GlobalData.stuID; logInfo.DateTime = DateTime.Now; initListFileNode(logInfo); }
/* * 获取所有用户名下的log信息 * @return List<LogListInfo> * **/ public static List <LogListInfo> readXMLListFileAllUser(string xmlRootPath) { List <LogListInfo> plist = new List <LogListInfo>(); DirectoryInfo drInfo = new DirectoryInfo(xmlRootPath); DirectoryInfo[] subDr = drInfo.GetDirectories(); foreach (DirectoryInfo subDir in drInfo.GetDirectories()) { string subFile = subDir.FullName + @"\"; DirectoryInfo subDrInfo = new DirectoryInfo(subFile); FileInfo[] fileInfo = subDrInfo.GetFiles(); foreach (FileInfo f in fileInfo) { List <LogDetailInfo> ldlist = new List <LogDetailInfo>(); if (f.Extension == ".xml" || f.Extension == ".XML") { XElement xlm = XElement.Load(f.FullName); var elements = from e in xlm.Elements("logDetails") select e; foreach (var element in elements) { LogListInfo logListinfo = new LogListInfo(); logListinfo.Id = element.Attribute("id").Value; logListinfo.Name = element.Element("name").Value; logListinfo.CaseName = element.Element("caseName").Value; logListinfo.StudentId = element.Element("studentId").Value; logListinfo.Path = element.Element("path").Value; logListinfo.Duration = int.Parse(element.Element("duration").Value); logListinfo.DateTime = Convert.ToDateTime(element.Element("beginTime").Value); logListinfo.Username = element.Element("username").Value; var logs = from e in xlm.Elements("Logs") select e; var logelements = from e in logs.First().Elements("Log") select e; foreach (var logelement in logelements) { LogDetailInfo logDetailInfo = new LogDetailInfo(); logDetailInfo.Type = int.Parse(logelement.Element("type").Value); logDetailInfo.Time = logelement.Element("time").Value; logDetailInfo.Content = logelement.Element("content").Value; ldlist.Add(logDetailInfo); } logListinfo.LogOptlist = ldlist; plist.Add(logListinfo); } } } } return(plist); }
/* * 查看单个当前Log日志全部信息 * @Param 如果当前log路径为NULL的话 ,可以采用手动传参路径,默认为"" * **/ public static LogListInfo getCurrentSingleLogDetailInfo(string currentFullPath = "") { XElement xlm; if (currentLogFile == null || currentLogFile == "") { xlm = XElement.Load(currentFullPath); } else { xlm = XElement.Load(currentLogFile); Debug.Log(currentLogFile); } var elements = from e in xlm.Elements("logDetails") select e; LogListInfo logListinfo = new LogListInfo(); List <LogDetailInfo> ldlist = new List <LogDetailInfo>(); foreach (var element in elements) { logListinfo.Id = element.Attribute("id").Value; logListinfo.Name = element.Element("name").Value; logListinfo.CaseName = element.Element("caseName").Value; logListinfo.StudentId = element.Element("studentId").Value; logListinfo.Path = element.Element("path").Value; logListinfo.Duration = int.Parse(element.Element("duration").Value); logListinfo.DateTime = Convert.ToDateTime(element.Element("beginTime").Value); logListinfo.Username = element.Element("username").Value; var logs = from e in xlm.Elements("Logs") select e; var logelements = from e in logs.First().Elements("Log") select e; foreach (var logelement in logelements) { LogDetailInfo logDetailInfo = new LogDetailInfo(); logDetailInfo.Type = int.Parse(logelement.Element("type").Value); logDetailInfo.Time = logelement.Element("time").Value; logDetailInfo.Content = logelement.Element("content").Value; ldlist.Add(logDetailInfo); } logListinfo.LogOptlist = ldlist; } return(logListinfo); }