using System; using System.Collections.Generic; using System.Text; using System.IO; namespace NetLibrary.Log { public class ErrorFollow { public static bool IsDebug = true; #region 输出错误信息 /// /// 输出错误信息 /// public static void TraceWrite(string TypeName, string StackTrace, string ErrorMsg) { if (ErrorFollow.IsDebug == false) return; if (string.IsNullOrEmpty(ErrorMsg) == true) ErrorMsg="消息为空字符串"; try { string DirectoryName = AppDomain.CurrentDomain.BaseDirectory + "ServerCookies"; if (Directory.Exists(DirectoryName) == false) Directory.CreateDirectory(DirectoryName); string filePath = DirectoryName + "/" + DateTime.Today.ToString("yyyy-MM-dd") + "EventLog.log"; bool append = true; if (File.Exists(filePath) == false) File.Create(filePath).Close(); FileInfo f = new FileInfo(filePath); if (f.Length / 1024 / 1024 > 1) { append = false; string newFile=DirectoryName+"/"+DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".log"; f.CopyTo(newFile, true); } f = null; using (StreamWriter sw = new StreamWriter(filePath, append, System.Text.Encoding.Default)) { sw.WriteLine("------------"); sw.WriteLine(TypeName); sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); sw.WriteLine(StackTrace); sw.WriteLine(ErrorMsg); sw.Close(); } } catch { } } #endregion #region 输出错误信息 /// /// 输出错误信息 /// public static void TraceWrite(string filePath, string TypeName, string StackTrace, string ErrorMsg) { if (ErrorFollow.IsDebug == false) return; if (string.IsNullOrEmpty(ErrorMsg) == true) ErrorMsg = "未知错误"; try { bool append = true; if (File.Exists(filePath) == false) File.Create(filePath).Close(); FileInfo f = new FileInfo(filePath); if (f.Length / 1024 / 32 > 10) append = false; f = null; using (StreamWriter sw = new StreamWriter(filePath, append, System.Text.Encoding.Default)) { sw.WriteLine("------------"); sw.WriteLine(TypeName); sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); sw.WriteLine(StackTrace); sw.WriteLine(ErrorMsg); sw.Close(); } } catch { } } #endregion #region 清理错误日志 public static void DeleteLog(int Day) { string DirectoryName = AppDomain.CurrentDomain.BaseDirectory + "ServerCookies/"; if (Directory.Exists(DirectoryName) == false) return; string[] files = Directory.GetFiles(DirectoryName, "*.log"); foreach (string filePath in files) { DateTime dt = File.GetCreationTime(filePath); if (dt.AddDays(Day) > DateTime.Now) continue; File.Delete(filePath); } } #endregion } }