最近公司要自己搭建一套前端日志監控系統,主要是為了方便移動端調查問題。
網上查閱了相關資料,個人有些總結如下:
總體的流程大致可分為:前端收集日志、日志上報、日志存儲及日志顯示界面(是否需要圖形化界面可以根據己方的業務需求)。
一、關於前端日志的收集方式:
1、try...catch 這種方式適合捕獲可預見的錯誤,無法捕獲異步錯誤。
2、window.onerror 可以捕獲到語法錯誤、但無法捕獲到網絡異常的錯誤。
3、window.addEventListener('error', fun, true) 這種方式雖然可以捕捉到網絡請求的異常,但是無法判斷 HTTP 的狀態是 404 還是其他比如 500 等等,還需要配合服務端日志才進行排查分析才可以。
4、unhandledrejection:可以捕獲到promise異常,也是通過window.addEventListener('unhandledrejection', fun, true)方式。
5、可以配合項目使用的前端框架的錯誤處理方法來收集,比如VUE的異常處理方法errorHandler,可以通過重寫vue.prototype.errorHandler方法來達到收集框架的一些異常
二、日志上報方式
1、通過ajax發送數據
2、通過動態創建img標簽的方式
三、日志存儲
這一塊需要后端的配合(本人懂后台,多多諒解,哈哈哈~)
四、日志顯示界面
1、日志的顯示界面多種多樣,詳細的就不贅述了。
因為目前還處於准備階段,暫時寫到這里,之后再更新~