Log.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace CarLocalMeter
  8. {
  9. public class Log
  10. {
  11. /// <summary>
  12. /// 禁止通过new创建实例
  13. /// </summary>
  14. private Log() { }
  15. private static Log log;
  16. // 定义一个标识确保线程同步
  17. private static readonly object locker = new object();
  18. public static Log GetInstance()
  19. {
  20. if (log == null)
  21. {
  22. lock (locker)
  23. {
  24. if (log == null)
  25. {
  26. log = new Log();
  27. }
  28. }
  29. }
  30. return log;
  31. }
  32. /// <summary>
  33. /// 写入日志
  34. /// </summary>
  35. /// <param name="iType">0智能终端 1数据采集 2网络状态 3计量实绩 4计量监控 5远程计量 6静态衡 7动态衡 8成品秤</param>
  36. /// <param name="str"></param>
  37. public void WriteLog(LogType iType, string str)
  38. {
  39. try
  40. {
  41. string strLogName = "";
  42. switch (iType)
  43. {
  44. case LogType.PlcLog:
  45. strLogName = "数据采集日志_";
  46. break;
  47. case LogType.MoxaLog:
  48. strLogName = "重量采集日志_";
  49. break;
  50. case LogType.VoiceLog:
  51. strLogName = "视频日志_";
  52. break;
  53. case LogType.RfidLoc:
  54. strLogName = "rfid日志_";
  55. break;
  56. case LogType.LedLog:
  57. strLogName = "Led日志_";
  58. break;
  59. case LogType.serverLog:
  60. strLogName = "请求服务端日志_";
  61. break;
  62. case LogType.WriteDbLog:
  63. strLogName = "本地计量日志_";
  64. break;
  65. default:
  66. strLogName = "计量终端日志_";
  67. break;
  68. }
  69. string m_szRunPath;
  70. m_szRunPath = System.Environment.CurrentDirectory;
  71. if (System.IO.Directory.Exists(m_szRunPath + "\\log") == false)
  72. {
  73. System.IO.Directory.CreateDirectory(m_szRunPath + "\\log");
  74. }
  75. string strDate = System.DateTime.Now.ToString("yyyyMMdd");
  76. string strPathFile = m_szRunPath + "\\log\\" + strDate;
  77. if (!Directory.Exists(strPathFile))//如果不存在就创建file文件夹
  78. {
  79. Directory.CreateDirectory(strPathFile);
  80. }
  81. System.IO.TextWriter tw = new System.IO.StreamWriter(strPathFile + "\\" + strLogName + strDate + ".log", true);
  82. tw.WriteLine(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  83. tw.WriteLine(str);
  84. tw.WriteLine("\r\n");
  85. tw.Close();
  86. }
  87. catch (Exception ex)
  88. {
  89. }
  90. }
  91. }
  92. public enum LogType
  93. {
  94. PlcLog,//Plc数据交互
  95. MoxaLog,//Moxa重量采集
  96. VoiceLog,//摄像头采集
  97. SystemLog,//程序本身抛出
  98. RfidLoc,//rfid异常
  99. serverLog,//服务端异常
  100. WriteDbLog,//写入数据异常
  101. LedLog,
  102. }
  103. }