C# 程序A发送Log记录给程序B,程序B处理和分析Log记录

关键字:C# ;Log记录 ;在线Log记录;Socket;httplistener

一、常用场景

1、 APP开发,在真机或者虚拟机上面运行由H5或者ApiCloud的程序,或者调试别人写的程序的时候,往往不能看到一段代码执行后的输出结果是什么。作为一个天天跟后台打交道的人,浏览器尤其是习惯了Google的F12的console.log,更是希望APP调试也能够实时查看输出。

2、开发一个.Net的网站,或者Java的网站,在调试的时候,写了很多的System.console.writeline代码,写了很多System.out.println 代码,但是网站一发布,除了写在文件/数据库里面的日志记录,一旦出现问题,定位不了那段代码出错了。把出错写在文件中,又担心文件太大,占据磁盘空间,想有一种可以打开就记录Log,关闭就不记录Log的工具。

2、 其他类似的情况,一是程序是在一个黑盒子中开发的,或者是不想把无用的日志写入磁盘占据空间,你需要一款打开即用,关闭即停的工具

总结:我把他取名为:VisualTools,一个Log记录的可视化展示工具。

二、基本架构流程设计图:

如上图所示:Visual Debug Tool 提供两种方式,一种是应用程序通过直接发送Log消息给Visual Debug Tool,另一种是应用程序先发送GET请求给HTTP服务器,有HTTP服务器中转发送Log消息给Visual Tool,这两种方式,个人推荐第二种,第二种的可扩展性和兼容性都不错,只要应用程序模拟发送GET请求,并将数据放到参数中就可以做到。

第二种方式有一个好处,就是,不是同一台机器上的程序,可以通过访问HTTP 服务器的方式,去记录Log,这种方式尤其对于APP段输出字段值,有很高的便利性。

三、软件介绍:

1、 HTTP Server迷你的HTTP工具,用来代理转发Log消息:

应用程序通过GET方式访问:http://127.0.0.1:8081?pid=&msgLevel=&msg=&other=

的方式,进行发送Log消息。

Tips:

JS调用方式:

function GETLogPage(pid,msgLevel,msg,otherInfo){

$.get("http://127.0.0.1:8081?pid="+encodeURIComponent(pid)+"&msgLevel="+encodeURIComponent(msgLevel)+"&msg="+encodeURIComponent(msg)+"&other="+encodeURIComponent(otherInfo), function(response,status,xhr){

console.log(response);

});

}

 

C# HttpGet调用方式,自行百度。

C#调用方式,直接发送给Visual Debug Tool:(相关类,以开源,后附开源地址)

ToolsLib.MSGEntity msgentity = new ToolsLib.MSGEntity();

msgentity.msgLevel = msgLevel;

msgentity.msg = msg;

msgentity.timeStr = timeStr;

msgentity.pidIndentity = pidIndentity;

msgentity.other = other;

string ret = ToolsLib.SendMsgToBS.Send(msgentity);//发送实体

2、 Visual Debug Tool 工具

注意:HTTP Server迷你的HTTP工具 和 Visual Debug Tool 必须要运行在同一台服务器端。如果要使用其他电脑访问,可以在Visual Debug Tool里面设置该程序为服务器,其他机器通过选择连接服务器,进行连接。

如果您想要源代码,联系QQ:1097712982

程序地址(不含源码):https://files.cnblogs.com/files/lijuanfei/VisualDebugTool.rar

最新文章

  1. DevExpress GridControl使用方法
  2. Android 手机卫士--设置密码对话框
  3. 重装Ubuntu16.04及安装theano
  4. POJ 1244 Slots of Fun(计算几何)
  5. opencl gauss filter优化(二)
  6. 设计模式_Command_命令模式
  7. [python][flask][flask-SQLAlchemy]关于flask-SQLAlchemy的初级使用教程
  8. Win7 64 bit 激活工具
  9. OO设计
  10. 常用ARM指令集及汇编_破解
  11. JavaWeb(八)JQuery
  12. Java开发小技巧(三):Maven多工程依赖项目
  13. Linux 账号管理与 ACL 权限配置
  14. Docker_部署jenkins(dockerfile实现)
  15. 11_Python的列表推导式_Python编程之路
  16. web开发-前后端分离原理
  17. CEF 自定义用户协议(scheme)实现以二进制流的方式显示图片、视频、音频
  18. SpringDataJPA
  19. final修饰符与多态
  20. podofo 一点小分享

热门文章

  1. QT-This application failed to start because it could not find or load the Qt platform plugin "windows"
  2. requests中获取请求到文本编码格式
  3. BZOJ4403: 序列统计【lucas定理+组合数学】
  4. .NET Core Generic Host Windows服务部署使用Topshelf
  5. python入门20180717-迭代器、生成器和协程
  6. 编程实现C库函数
  7. Asp.Net操作MySql数据库增删改查
  8. dede的织梦问答模块也可以支持arclist标签
  9. SSH pts 虚拟终端
  10. php如何分割字符串?php mb_substr分割字条串,解决中文乱码问题,支持分割中文! (转)