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,
}
}