using System; using System.IO; namespace WIDESEA_Common.Tools { public class WriteLog { private int fileSize; private string logFileName; public static WriteLog log; //private static string EquipName; static object lockobj = new object(); public static WriteLog GetLog(/*string equipName*/) { lock (lockobj) { //EquipName = string.Empty; //EquipName = equipName; log ??= new WriteLog(); log.FileLogPath = $"{AppContext.BaseDirectory}\\Logs\\{DateTime.Now: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() { this.fileSize = 2048 * 1024 * 200;//50M 2048 * 1024 * 200= 419430000字节(b)=399.9996185兆字节(mb) //this.logFileName = EquipName + "_log_" + DateTime.Now.ToString("yyyyMMdd") + ".log"; } private WriteLog(string equipName) { //初始化大于399M日志文件将自动删除; this.fileSize = 2048 * 1024 * 10;//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 string FileLogPath { set; get; } //= AppContext.BaseDirectory + "\\log\\" + EquipName + "\\"; static readonly object flag = new object(); public void Write(string Message, string EquipName) { lock (flag) { if (string.IsNullOrEmpty(Message)) return; 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, ""); } } public void Write(string LogFileName, string Message, string str) { if (!Directory.Exists(this.FileLogPath)) { Directory.CreateDirectory(this.FileLogPath); } FileInfo finfo = new FileInfo(this.FileLogPath + LogFileName); if (finfo.Exists) { if (finfo.Length > fileSize) { finfo.Delete(); } } try { using FileStream fs = new FileStream(this.FileLogPath + LogFileName, FileMode.Append); using StreamWriter strwriter = new StreamWriter(fs); try { DateTime d = DateTime.Now; strwriter.WriteLine(Message); //strwriter.WriteLine($"【{d:yyyy-MM-dd HH:mm:ss}】" + Message); //strwriter.WriteLine(); strwriter.Flush(); } catch (Exception ee) { Console.Out.WriteLine("日志文件写入失败信息:" + ee.ToString()); } } catch (Exception) { Console.Out.WriteLine("日志文件没有打开,详细信息如下:"); } } } /// /// 本地日志记录 /// //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; // } // } // 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 // { // FileStream fs = new FileStream(this.FileLogPath + LogFileName, FileMode.Append); // StreamWriter strwriter = new StreamWriter(fs); // try // { // DateTime d = DateTime.Now; // strwriter.WriteLine("时间:" + d.ToString()); // strwriter.WriteLine(Message); // strwriter.WriteLine(); // strwriter.Flush(); // } // catch (Exception) // { // //Console.WriteLine("日志文件写入失败信息:" + ee.ToString()); // } // finally // { // strwriter.Close(); // strwriter = null; // fs.Close(); // fs = null; // } // } // catch (Exception) // { // //Console.WriteLine("日志文件没有打开,详细信息如下:"); // } // } //} }