using System; using System.Collections.Generic; using System.Text; using System.IO; namespace YTSoft.Common { /// /// 记录系统错误日志类 /// public class SysLog { #region 错误记录 private static Exception EX = null;//错误消息 private static string Leve = null;//错误级别 private static string Position = null;//错误位置 private static string SavePath = null; //保存位置 /// /// 向文件中写错误日志,只写错误信息 /// /// 错误信息 public static void WriteLog(Exception ex) { EX = ex; WriteDisk();//文件写入硬盘 } /// /// 向文件中写错误日志,只写错误信息 /// /// 错误信息 public static void WriteLog(Exception ex, string path) { SavePath = path; EX = ex; WriteDisk();//文件写入硬盘 } /// /// 向文件中写错误日志,记录错误信息,发生错误位置 /// /// 错误信息 /// 发生错误位置 public static void WriteLog(Exception ex, string position, string path) { SavePath = path; EX = ex; Position = position; WriteDisk();//文件写入硬盘 } /// /// 向文件中写错误日志,记录错误信息,发生错误位置,错误级别 /// /// 错误信息 /// 发生错误位置 /// 错误级别 public static void WriteLog(Exception ex, string position, string leve, string path) { SavePath = path; EX = ex; Leve = leve; Position = position; WriteDisk();//文件写入硬盘 } /// /// 文件写入硬盘 /// /// private static void WriteDisk() { FileStream fs = null; try { string str = "时间:" + System.DateTime.Now.ToString() + "\t"; if (EX != null) { str += "错误消息:" + EX.Message + "\t"; if (EX.HelpLink != null) { str += "与此关联的文件:" + EX.HelpLink + "\t"; } str += "错误消息字符串表示:" + EX.StackTrace + "\t"; } if (Position != null) { str += "错误位置:" + Position + "\t"; } if (Leve != null) { str += "错误级别:" + Leve + "\t"; } str += "\r\n\r\n\r\n"; string path = SavePath + "/Logs/ErrorLogs/" + DateTime.Now.ToString("yyyyMM") + "/" + DateTime.Now.ToString("yyyyMMdd") + "Log.txt"; if (!File.Exists(path)) { Directory.CreateDirectory(SavePath + "/Logs/ErrorLogs/" + DateTime.Now.ToString("yyyyMM") + "/"); File.Create(path).Close(); } //字符串写入硬盘 byte[] bytData = System.Text.Encoding.Default.GetBytes(str); fs = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite, 2048); fs.Write(bytData, 0, bytData.Length); } finally { if (fs != null) { fs.Close(); } EX = null; Position = null; Leve = null; } } /// /// 文件写入硬盘 操作日志 /// /// public static void WriteOptDisk(string info, string paths) { SavePath = paths; FileStream fs = null; try { string str = "时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ms") + "\t"; str += "操作信息:" + info + "\t"; str += "\r\n\r\n\r\n"; string path = SavePath + "/Logs/OptLogs/" + DateTime.Now.ToString("yyyyMM") + "/" + DateTime.Now.ToString("yyyyMMdd") + "-" + DateTime.Now.Hour + "-" + DateTime.Now.Minute + "Log.txt"; if (!File.Exists(path)) { Directory.CreateDirectory(SavePath + "/Logs/OptLogs/" + DateTime.Now.ToString("yyyyMM")+ "/"); File.Create(path).Close(); } //字符串写入硬盘 byte[] bytData = System.Text.Encoding.Default.GetBytes(str); fs = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.ReadWrite, 2048); fs.Write(bytData, 0, bytData.Length); } finally { if (fs != null) { fs.Close(); } } } #endregion } }