using System; using System.Collections.Generic; using System.IO; using System.Text; namespace WIDESEA_Common.Tools { /// /// 本地日志记录 /// public class WriteLog { /// /// 文件大小 /// private int fileSize; /// /// 日志文件名称 /// private string logFileName; /// /// 日志内容 /// public static WriteLog log; /// /// 设备名称 /// static string EquipName; /// /// 获取日志 /// /// 设备名称 /// public static WriteLog GetLog(string equipName) { EquipName = equipName; //if (log == null) log = new WriteLog(equipName); log.FileLogPath = AppContext.BaseDirectory + "\\log\\" + DateTime.Now.ToString("yyyyMMdd") /*+ "\\" + EquipName + "_" + DateTime.Now.ToString("yyyyMMdd")*/ + "\\"; return log; } /// /// 信息 /// /// 设备名称 /// public static WriteLog Info(string equipName) { EquipName = equipName; //if (log == null) log = new WriteLog("Info" + equipName); log.FileLogPath = AppContext.BaseDirectory + "\\log\\Info\\" + DateTime.Now.ToString("yyyyMMdd") /*+ "\\" + EquipName + "_" + DateTime.Now.ToString("yyyyMMdd")*/ + "\\"; return log; } /// /// 错误 /// /// 设备名称 /// public static WriteLog Error(string equipName) { EquipName = equipName; //if (log == null) log = new WriteLog("Error" + equipName); log.FileLogPath = AppContext.BaseDirectory + "\\log\\Error\\" + DateTime.Now.ToString("yyyyMMdd") /*+ "\\" + EquipName + "_" + DateTime.Now.ToString("yyyyMMdd")*/ + "\\"; return log; } private WriteLog(string equipName) { //初始化大于399M日志文件将自动删除; this.fileSize = 2048 * 1024 * 200;//50M 2048 * 1024 * 200= 419430000字节(b)=399.9996185兆字节(mb) //默认路径 //this.FileLogPath = AppContext.BaseDirectory + "\\log\\" + EquipName + "\\"; EquipName = equipName; if (!string.IsNullOrEmpty(equipName)) this.logFileName = equipName + "_log" + DateTime.Now.ToString("yyyyMMdd") + ".log"; else this.logFileName = "log" + DateTime.Now.ToString("yyyyMMdd") + ".log"; //this.logFileName = EquipName + "_log" + DateTime.Now.ToString("yyyyMMdd") + ".log"; } public int FileSize { set { fileSize = value; } get { return fileSize; } } public string FileLogPath { set; get; } //= AppContext.BaseDirectory + "\\log\\" + EquipName + "\\"; public string LogFileName { set { this.logFileName = value; } get { return this.logFileName; } } /// /// 方法锁 /// private static readonly object flag = new object(); /// /// /// /// /// public void Write(string Message, string equipName) { lock (flag) { if (!string.IsNullOrEmpty(equipName)) this.logFileName = equipName + "_log" + DateTime.Now.ToString("yyyyMMdd") + ".log"; else this.logFileName = "log" + DateTime.Now.ToString("yyyyMMdd") + ".log"; this.Write(this.logFileName, Message, equipName); } } /// /// /// /// /// /// public void Write(string LogFileName, string Message, string equipName) { //DirectoryInfo path=new DirectoryInfo(LogFileName); //如果日志文件目录不存在,则创建 if (!Directory.Exists(this.FileLogPath)) { Directory.CreateDirectory(this.FileLogPath); } FileInfo finfo = new FileInfo(this.FileLogPath + LogFileName); if (finfo.Exists && finfo.Length > fileSize) { finfo.Delete(); } try { using (FileStream fs = new FileStream(this.FileLogPath + LogFileName, FileMode.Append)) { using (StreamWriter strwriter = new StreamWriter(fs)) { strwriter.WriteLine(Message); strwriter.Flush(); strwriter.Close(); } } } catch (Exception ee) { Console.Out.WriteLine("日志文件写入失败信息:" + ee.ToString()); } } } }