/// <summary> /// 通用日志记录写入数据库方法(异步) /// 适用于 MIAP.Entities.Logs 下所有实现了 ILog 接口的日志实体类 /// 仅适用于日志数据写入数据库操作 /// 每个实体类对应一个数据库存储过程,对应关系为:SP_Logs_Create + 日志实体类名 /// 如:CmdQueryLog 对应存储过程为:SP_Logs_CreateCmdQueryLog /// 所有存储过程的输入参数为 实体类的 公开成员名称,参数值为成员对应的值 /// 所有存储过程均无返回值 /// </summary> /// <typeparam name="T">日志类型</typeparam> /// <param name="log">日志内容</param> public static async void CreateLogs <T>(T log) where T : ILog { await Task.Run(() => { Tuple <string, IEnumerable <string>, IEnumerable <object> > tupleResult = log.ToReflection(); string logClassName = tupleResult.Item1.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries).Last(); string dbProcedureName = string.Format("SP_Logs_Create{0}", logClassName); LogsData.ProcedureExecuteNonQuery(dbProcedureName, string.Join(",", tupleResult.Item2), tupleResult.Item3.ToArray()); }); }
void ShowLog(string msg) { Application.Current.Dispatcher.Invoke(new Action(() => { LogsData.Insert(0, $"{DateTime.Now:yyyy-MM-dd HH:mm:ss} {msg}"); if (LogsData.Count > 150) { LogsData.RemoveAt(LogsData.Count - 1); } })); LogInfo.Log.Info(msg); }
public static void SaveLogs(SuperLogger logsData) { Debug.LogError("HOLA ESTOY GUARDANDO"); Debug.Log(path); BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Create); LogsData data = new LogsData(logsData); formatter.Serialize(stream, data); stream.Close(); }
public static LogsData LoadLogs() { if (File.Exists(path)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Open); LogsData data = formatter.Deserialize(stream) as LogsData; stream.Close(); return(data); } else { Debug.LogError("Save file not found in " + path); return(null); } }
public static void SaveLogData(string fileName) { if (!Directory.Exists(@"Logs")) //若文件夹不存在则新建文件夹 { Directory.CreateDirectory(@"Logs"); //新建文件夹 } LogsData logData = new LogsData(); logData.log = data2.log; FileInfo file = new FileInfo(Path + fileName); if (file.Directory.Exists == false) { file.Directory.Create(); } using (Stream stream = file.Create()) { System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(logData.GetType()); xs.Serialize(stream, logData); } }
public static void LoadLogData(string path, string fileName) { if (!Directory.Exists(@"Logs")) //若文件夹不存在则新建文件夹 { Directory.CreateDirectory(@"Logs"); //新建文件夹 } string order = path + fileName; FileInfo file = new FileInfo(order); if (file.Exists == false) { return; throw new FileNotFoundException(); } LogsData logData = null; using (Stream stream = file.OpenRead()) { System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(LogsData)); logData = xs.Deserialize(stream) as LogsData; data2 = logData; } }
/// <summary> /// 判断用户是否第一次更新指定类型的个人信息(异步) /// </summary> /// <param name="log">日志内容(用户编号和更新类型字段)</param> /// <returns>判断结果</returns> public static bool IsFirstUpdateSelfInfoByUser(UserInfoUpdateLog log) { return(LogsData.UserUpdateSelfInfoCount(log) == 0); }
public override void Load() { LogsData data = SaveLoadLogs.LoadLogs(); logs = data.allLogs; }
public void Load() { outputText.text = logger.GetAllLogs(); LogsData data = SaveLoadLogs.LoadLogs();; //outputText = data.allLogs; }
/// <summary> /// /// </summary> /// <param name="item"></param> public void AddLog(LogData item) { LogsData.Add(item); OnPropertyChanged("LogsData"); }