您的位置:首页 > 运维架构

SignalR实现页面实时监控

2016-10-25 17:33 225 查看
1.页面截图

/// <summary>
/// 日志导入到数据库
/// </summary>
public void ToDB()
{
var loganalysis = new LogAnalysisBll();
var logbll = new LogsBll();
var json = new { filename = "", logscount = 0, status = 0 };
//获取所有日志名称
var list = loganalysis.GetFields(logPath);
if (list != null && list.Count > 0)
{
//时间倒序排列
list = list.OrderByDescending(x => x.AsDatetime()).ToList();
}

foreach (var item in list)
{
var month = item.AsDatetime().Month.ToString();
var day = item.AsDatetime().Day.ToString();
month = month.Length == 1 ? "0" + month : month;
day = day.Length == 1 ? "0" + day : day;

LogInfoModel fileModel = new LogInfoModel() { LogName = item };
var fileSave = logbll.InsertFile(fileModel);  //插入日志名称到数据库

//根据日志路径分析日志,获取列表
var logslist = loganalysis.GetLog(string.Format("{4}{0}\\{1}\\{2}\\{3}.log", item.AsDatetime().Year, month, day, item.AsDatetime().ToString("yyyyMMdd"), logPath));
if (fileSave > 0)  //如果数据库不存在此日志文件,则添加日志文件和问件包含的日志
{
foreach (var log in logslist)
{
var logModel = log;
logModel.FileId = fileSave;
logbll.InsertLog(logModel);
}
json = new { filename = item, logscount = logslist.Count, status = 1 };
Clients.All.addNewMessageToPage(json);
}
else  //如果数据库已存在此文件,则检索此文件中所有的日志,将还未添加到数据库中的日志添加到数据库
{
var model = logbll.GetLastLog(item); //获取数据库当前文件的最后一个日志
var lastTime = model.LogCreateTime.AsString(19).AsDatetime();
var loglist = logslist.Where(x => x.LogCreateTime.AsString(19).AsDatetime() > lastTime).ToList();
var a = loglist.Count;
foreach (var log in loglist)
{
var logModel = log;
logModel.FileId = model.FileId;
logbll.InsertLog(logModel);
}
json = new { filename = item, logscount = loglist.Count, status = 1 };
Clients.All.addNewMessageToPage(json);
}
}
json = new { filename = "", logscount = 0, status = 0 };
Clients.All.addNewMessageToPage(json);
}


View Code

对于SignalR使用不成功的可以问我,我不是很了解但是使用成功了,遇到部分问题也解决了,QQ:905679027
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: