教你用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.打开聊天界面,系统运行情况一目了然

当然,大的项目自然有很多监测方法,只是自己突然想到了这么个思路,挺有意思的哈~~

posted @ 2016-01-13 18:19  丶Pz  阅读(1327)  评论(0编辑  收藏  举报