using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RailLocalMeter { public class Log { /// /// 禁止通过new创建实例 /// private Log() { } private static Log log; // 定义一个标识确保线程同步 private static readonly object locker = new object(); public static Log GetInstance() { if (log == null) { lock (locker) { if (log == null) { log = new Log(); } } } return log; } /// /// 写入日志 /// /// 0智能终端 1数据采集 2网络状态 3计量实绩 4计量监控 5远程计量 6静态衡 7动态衡 8成品秤 /// public void WriteLog(LogType iType, string str) { try { string strLogName = ""; switch (iType) { case LogType.PlcLog: strLogName = "数据采集日志_"; break; case LogType.MoxaLog: strLogName = "重量采集日志_"; break; case LogType.VoiceLog: strLogName = "视频日志_"; break; case LogType.RfidLoc: strLogName = "rfid日志_"; break; case LogType.LedLog: strLogName = "Led日志_"; break; case LogType.serverLog: strLogName = "请求服务端日志_"; break; case LogType.WriteDbLog: strLogName = "本地计量日志_"; break; default: strLogName = "计量终端日志_"; break; } string m_szRunPath; m_szRunPath = System.Environment.CurrentDirectory; if (System.IO.Directory.Exists(m_szRunPath + "\\log") == false) { System.IO.Directory.CreateDirectory(m_szRunPath + "\\log"); } string strDate = System.DateTime.Now.ToString("yyyyMMdd"); string strPathFile = m_szRunPath + "\\log\\" + strDate; if (!Directory.Exists(strPathFile))//如果不存在就创建file文件夹 { Directory.CreateDirectory(strPathFile); } System.IO.TextWriter tw = new System.IO.StreamWriter(strPathFile + "\\" + strLogName + strDate + ".log", true); tw.WriteLine(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); tw.WriteLine(str); tw.WriteLine("\r\n"); tw.Close(); } catch (Exception ex) { } } } public enum LogType { PlcLog,//Plc数据交互 MoxaLog,//Moxa重量采集 VoiceLog,//摄像头采集 SystemLog,//程序本身抛出 RfidLoc,//rfid异常 serverLog,//服务端异常 WriteDbLog,//写入数据异常 LedLog, } }