教你用SingalR实现后台开发程序运行时时检测
在调试js的时候都喜欢用console.log输出相应的运行结果或者查看变量值,以便于调试程序bug,可是程序后台代码运行的时候,本地没有问题,线上代码有问题怎么办呢,写日志是一个办法,可是有没有更直观的方式呢,时时监测代码运行情况,那么既然SingalR有时时推送的功能,我自己突发奇想想了这么个写日志的方法。
首先,拿出之前聊天室的项目。先截一个图:
第二,你只需要知道singalR服务地址就可以了。我写的代码如下(只是举例,各种方案不一样):
public static void PushLog(string message) { var pushUrl = "http://XXXXXXX/ChatPush/XXXXXXX"; StringBuilder msg = new StringBuilder(); msg.AppendFormat("ChatMsgId={0}", Guid.NewGuid().ToString()); msg.AppendFormat("&CvNumber={0}", 747227); msg.AppendFormat("&Contents={0}", message); msg.AppendFormat("&UserPhoto={0}", "http://img1.gurucv.com/image/417c1ab3-f0ed-4080-9189-a6bb3a381ba9_per_middle.png?t=52442424-7c77-4c01-aae5-43fee8371c3f"); msg.AppendFormat("&UserName={0}", "[系统监测]"); msg.AppendFormat("&EntCvNumber={0}", 90000956); msg.AppendFormat("&MsgTypeId={0}", 0); msg.AppendFormat("&EntName={0}", "Mobile项目时时检测"); msg.AppendFormat("&groupId={0}", 90000956); msg.AppendFormat("&AddTimeStr={0}", DateTime.Now.ToString()); var json = msg.ToString(); var result = HttpHelper.SendPost(pushUrl, json); }
好了,大功告成,调用方式很简单了,例如,在做微信授权功能的时候,我想知道,code是否获取到,就在获取code的代码里面插上一句:
Utils.PushLog("当前获取的code为:" + code);
那么当发布到线上的时候,你想检测某些代码的运行情况,打开客户端聊天室,就会收到系统发送过来的消息啦。
写的比较粗糙,总结一下:
1.先用singalR搭建好服务器,(搭建方法可以参考我的另外几篇聊天室博客)界面可以简单一些,开放推送接口。例如我项目的推送接口为 http://singalR.server/chatmsg/push (举例)
2.自己项目里写上推送方法,调用即可
3.打开聊天界面,系统运行情况一目了然
当然,大的项目自然有很多监测方法,只是自己突然想到了这么个思路,挺有意思的哈~~
多学点,总不会吃亏的。