软测单独项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

113 lines
3.6 KiB

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
namespace HardWareInteface.Common
{
public class LogInfo
{
public string path { get; set; }
public string message { get; set; }
}
public class WriteLogTask
{
FangYar.BLL.TBL_PERSONACCESS bll = new FangYar.BLL.TBL_PERSONACCESS();
public static ConcurrentQueue<LogInfo> LogQueue_CAR_SHZ = new ConcurrentQueue<LogInfo>();
private static CancellationTokenSource LogDealToken_CAR_SHZ = new CancellationTokenSource();
private static Task m_DealTask_CAR_SHZ = Task.Factory.StartNew(DealInfoList_CAR_SHZ, LogDealToken_CAR_SHZ.Token);
private static int i=0;
public static void LogQueueFun(string message,string path)
{
LogQueue_CAR_SHZ.Enqueue(new LogInfo() { path=path,message=message}); //添加
}
private static void DealInfoList_CAR_SHZ()
{
while (!LogDealToken_CAR_SHZ.IsCancellationRequested)
{
LogInfo dataInfo = new LogInfo();
if (LogQueue_CAR_SHZ.TryDequeue(out dataInfo))
{
try
{
DealInfo(dataInfo);
}
catch (Exception ex)
{
WriteLog(ex.StackTrace, dataInfo.path);
}
}
else
{
Thread.Sleep(100);
}
}
}
private static void DealInfo(LogInfo data)
{
//执行日志存入
WriteLog(data.message, data.path);
}
static ReaderWriterLockSlim LogWriteLock = new ReaderWriterLockSlim();
private static void WriteLog(string msg, string docPath)
{
FangYar.Common.MyLogHelper.WriteMsg(new FangYar.Common.LogInfoMo() { message = msg, msgType = FangYar.Common.EnumLogMsgTypeEnum.Error, path = "SHZCARREC\\" + docPath });
//try
//{
// LogWriteLock.EnterWriteLock();
// string path = AppDomain.CurrentDomain.BaseDirectory + "log\\SHZCARREC\\" + docPath + "\\";
// string filename = DateTime.Now.ToString("yyyyMMdd") + ".txt";
// if (Directory.Exists(path) == false)//如果不存在就创建文件夹
// {
// Directory.CreateDirectory(path);
// }
// FileInfo file = new FileInfo(path + filename);
// if (!file.Exists)
// {
// try
// {
// FileStream fs;
// fs = File.Create(path + filename);
// fs.Close();
// }
// catch
// {
// }
// }
// using (FileStream fs = new FileStream(path + filename, FileMode.Append, FileAccess.Write))
// {
// using (StreamWriter sw = new StreamWriter(fs))
// {
// sw.WriteLine("时间:" + DateTime.Now.ToString() + " 信息:" + msg);
// }
// }
//}
//catch (Exception e)
//{
//}
//finally
//{
// LogWriteLock.ExitWriteLock();
//}
}
}
}