LogMgr.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Windows.Forms;
  6. namespace StandardLibrary
  7. {
  8. //报警弹窗+运行Log
  9. public class LogMgr : SingletonTemplate<LogMgr>
  10. {
  11. private bool errShow = false;
  12. //运行
  13. public void WriteRunLog(string message)
  14. {
  15. string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\RunLog\\";
  16. string fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
  17. string time = DateTime.Now.ToString("HH:mm:ss");
  18. string writeMsg = time + " " + message + "\r\n";
  19. WriteLog(filePath + fileName, writeMsg);
  20. }
  21. //报警
  22. public void WriteErrLog(string message)
  23. {
  24. if (!errShow)
  25. {
  26. errShow = true;
  27. MessageBox.Show(message);
  28. errShow = false;
  29. }
  30. string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\ErrorLog\\";
  31. string fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
  32. string time = DateTime.Now.ToString("HH:mm:ss");
  33. string writeMsg = time + " " + message + "\r\n";
  34. WriteLog(filePath + fileName, writeMsg);
  35. }
  36. /// <summary>
  37. /// 写入Log文件
  38. /// </summary>
  39. /// <param name="logFile">文件路径+文件名(包含扩展名)</param>
  40. /// <param name="log">写入内容</param>
  41. /// <returns></returns>
  42. private bool WriteLog(string logFile, string log)
  43. {
  44. if (!File.Exists(logFile)) NewTxtFile(logFile); //判断文件是否存在,不存在则新建
  45. try
  46. {
  47. using (FileStream fileStream = new FileStream(logFile, FileMode.Open, FileAccess.Write)) //写入文件
  48. {
  49. StreamWriter streamWriter = new StreamWriter(fileStream);
  50. //sw.BaseStream的Position或Seek()可移动文件流指针到的任意位置。
  51. streamWriter.BaseStream.Seek(0, SeekOrigin.End); //在txt末尾写入
  52. streamWriter.Write(log); //写入txt文件内容
  53. streamWriter.Flush();
  54. streamWriter.Close();
  55. fileStream.Close();
  56. }
  57. return true;
  58. }
  59. catch { return false; }
  60. }
  61. /// <summary>
  62. /// 新建txt文件,
  63. /// </summary>
  64. /// <param name="txtFile">文件路径+文件名(包含扩展名)</param>
  65. private void NewTxtFile(string txtFile)
  66. {
  67. string path = txtFile.Substring(0, txtFile.LastIndexOf("\\"));
  68. if (!Directory.Exists(path))
  69. Directory.CreateDirectory(path); //判断路径是否存在,不存在则创建文件夹
  70. if (!File.Exists(txtFile)) //判断文件是否存在,不存在则创建TXT文件
  71. {
  72. using (FileStream fileStream = new FileStream(txtFile, FileMode.Create, FileAccess.Write))
  73. {
  74. fileStream.Close();
  75. }
  76. }
  77. }
  78. }
  79. }