using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Remoting.Messaging; using System.Text; using System.Threading.Tasks; namespace Hydro.CommonBase { public class Log { public static int LengthLimit = 100000; public static bool Enable = false; public static bool isAdded = false; public static object lockObj=new object(); //private static StringBuilder sb = new StringBuilder(); private static Dictionary sbs = new Dictionary(); public static string lastTime=DateTime.Now.ToString("HH:mm:ss"); private static Dictionary> ts = new Dictionary>(); public static void Add(string txt,string name="default",int mode=0, int level=0) { if (!Enable) return; lock (lockObj) { isAdded = true; if (!sbs.ContainsKey(name)) { sbs.Add(name, new StringBuilder()); ts.Add(name,new List() { DateTime.Now }); } var time = DateTime.Now; var now = time.ToString("HH:mm:ss"); string nowtxt = ""; if (now != lastTime) { nowtxt= $"\r\n{now}"; } string tt = ""; for (int i = 1;i<=level;i++) { tt += "\t"; if (ts[name].CountLengthLimit) { FileCopy.Copy(file, $@"Log\log_{name}_bk_{DateTime.Now.ToString("yyyyMMddHHmmss")}.lua", true); sbs[key].Clear(); } } catch { if (sw != null) sw.Close(); } } } } public static void OpenFile() { foreach (var key in sbs.Keys) { var name = key == "default" ? "" : key; var file = $@"Log\log_{name}.lua"; StreamWriter sw = null; try { System.Diagnostics.Process.Start(file); } catch { } } } } }