using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows.Forms; namespace StandardLibrary { //报警弹窗+运行Log public class LogMgr : SingletonTemplate { private bool errShow = false; //运行 public void WriteRunLog(string message) { string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\RunLog\\"; string fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".txt"; string time = DateTime.Now.ToString("HH:mm:ss"); string writeMsg = time + " " + message + "\r\n"; WriteLog(filePath + fileName, writeMsg); } //报警 public void WriteErrLog(string message) { if (!errShow) { errShow = true; MessageBox.Show(message); errShow = false; } string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\"; string fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".txt"; string time = DateTime.Now.ToString("HH:mm:ss"); string writeMsg = time + " " + message + "\r\n"; WriteLog(filePath + fileName, writeMsg); } /// /// 写入Log文件 /// /// 文件路径+文件名(包含扩展名) /// 写入内容 /// private bool WriteLog(string logFile, string log) { if (!File.Exists(logFile)) NewTxtFile(logFile); //判断文件是否存在,不存在则新建 try { using (FileStream fileStream = new FileStream(logFile, FileMode.Open, FileAccess.Write)) //写入文件 { StreamWriter streamWriter = new StreamWriter(fileStream); //sw.BaseStream的Position或Seek()可移动文件流指针到的任意位置。 streamWriter.BaseStream.Seek(0, SeekOrigin.End); //在txt末尾写入 streamWriter.Write(log); //写入txt文件内容 streamWriter.Flush(); streamWriter.Close(); fileStream.Close(); } return true; } catch { return false; } } /// /// 新建txt文件, /// /// 文件路径+文件名(包含扩展名) private void NewTxtFile(string txtFile) { string path = txtFile.Substring(0, txtFile.LastIndexOf("\\")); if (!Directory.Exists(path)) Directory.CreateDirectory(path); //判断路径是否存在,不存在则创建文件夹 if (!File.Exists(txtFile)) //判断文件是否存在,不存在则创建TXT文件 { using (FileStream fileStream = new FileStream(txtFile, FileMode.Create, FileAccess.Write)) { fileStream.Close(); } } } } }