錯誤發生通知機制-Call911

  • 1704
  • 0

錯誤發生通知機制-Call911

整個流程機制如下圖所示:

 

image

 

  • 應用程式透過程式寫入到系統事件
  • eventtriggers事件設定好,當事件發生時,執行c911.bat
  • c911.bat 執行mnsbot.exe程式,送出訊息給接受者
  • 接收者收到msn訊息

 

 

應用程式如何寫入系統事件?

 

我擴充了Exception類別,新增加Call911方法。程式只要在接到Exception的同時,呼叫Call911方法就可以將訊息寫到系統事件裏面。

 


            try
            {
                throw new NotImplementedException();
            }
            catch (Exception ee)
            {
                ee.Call911("測試程式", "執行緒沒有實作的啦~");
            }

 

如何開啟事件檢視器?

控制台\系統管理工具\事件檢視器

 

如何設定Eventtriggers

開啟cmd視窗,然後打以下命令創建一個eventtriggers


eventtriggers /create /tr "alert_UrlUpdater" /eid 911  /tk C:\c911.bat

eventtriggers是系統預設的工具,可以當某一個事件id發生時,觸發執行某一個bat檔。

上面這個命令意思是創建一個eventtrigger,觸發器名字叫"alert_UrlUpdater",要偵測的eventid是911,當此事件發生時,執行c:\c911.bat檔

 

c911.bat如何呼叫msnbot?

c911的內容如下:

C:\msnBot\MsnBot.exe rolence0515@pchome.com.tw URL更新器發生錯誤

以上命令執行msnbot.exe程式,傳入二個參數,第一個參數是接收者的msn帳號(rolence0515@pchome.com.tw ),第二個參數是要接收到的字串(URL更新器發生錯誤)

 

msnbot該如何設定?

msnbot是小雷寫的一個程式,可以傳送訊息給某人。要接收到訊息,必須先加入reddoor@hotmail.com為友人才可以收到訊息

 

會寫入什麼事件訊息?

image

如上圖所示:

錯誤訊息(工程師):為你當初透過Call911(),所傳入的參數,這個訊息可以口語一點,方便理解。

錯誤訊息(系統):為例外錯誤的系統訊息

Exception型別:例外錯誤的型別

錯誤程式:哪一個執行檔觸發錯誤的,方便追蹤

錯誤發生的CallStack:程式在哪一個檔案,哪一行出錯的,方便除錯。