標籤:空間 listener 擴充 get image 磁碟 info rar 運行
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# Http的Get調用方式,自行百度。
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
C# 程式A發送Log記錄給程式B,程式B處理和分析Log記錄