亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

sentry使用

張憲坤 / 2535人閱讀

摘要:客戶端安裝步驟根據(jù)使用平臺(tái)選擇選擇官網(wǎng)有說明。應(yīng)用可使用的監(jiān)聽鉤子如下事件,上報(bào)成功之后會(huì)此事件,可以監(jiān)聽此事件做一些其他的事情,比如上報(bào)到其他的平臺(tái)等等。

概念

js錯(cuò)誤日志統(tǒng)計(jì)工具,官網(wǎng)文檔

以下說明前提條件都是raven-js

日志收集必要條件

sentry平臺(tái)帳號(hào)注冊

raven客戶端安裝

sentry服務(wù)平臺(tái)
進(jìn)行首頁->新建項(xiàng)目之后,點(diǎn)擊settings,可以設(shè)置錯(cuò)誤日志收集條件,其中客戶
端dsn(結(jié)構(gòu):協(xié)議://公鑰:私鑰@sentry平臺(tái)地址/sentryId), 在sentry
客戶端raven安裝配置中會(huì)用到。
sentry客戶端raven
安裝步驟

根據(jù)使用平臺(tái)選擇raven(sdk選擇官網(wǎng)有說明)。

配置方法如下(我用的是react,使用的是import方式,其中url就是sentry服務(wù)端獲取的dsn,省略號(hào)是配置options):

import Raven from "raven-js";
Raven.config(url, {
    release: "1.0.0",
    whitelistUrls: [
        ...
    ],
    ...
}).install();

主要參數(shù)說明(所有上報(bào)都會(huì)攜帶的參數(shù),公用)

tags(對應(yīng)sentry服務(wù)平臺(tái)錯(cuò)誤詳情中的tags,便于分析錯(cuò)誤發(fā)生的情景):

user(對應(yīng)sentry服務(wù)平臺(tái)錯(cuò)誤詳情中的user,便于記錄觸發(fā)錯(cuò)誤的具體用戶):

extra(對映sentry服務(wù)平臺(tái)錯(cuò)誤詳情中的Additional Data,便于各別信息的統(tǒng)計(jì)):

whitelistUrls: 上報(bào)到sentry服務(wù)平臺(tái)的白名單,假如觸發(fā)錯(cuò)誤的js鏈接腳本host不在其值里,就無法上報(bào)錯(cuò)誤。

錯(cuò)誤日志上報(bào)(以我用的raven-js作為說明,其他可查看源代碼)
被動(dòng)上報(bào)
js運(yùn)行期間,如果發(fā)生錯(cuò)誤時(shí),錯(cuò)誤(比如點(diǎn)擊回調(diào)函數(shù)執(zhí)行報(bào)錯(cuò),ajax同源請求
報(bào)錯(cuò)等)沒有被try catch或者以其他方式捕捉,就會(huì)冒泡到window,觸發(fā)
[onerror][2]事件。當(dāng)然資源加載失
敗,比如img, script,會(huì)執(zhí)行該元素onerror不會(huì)冒泡window.onerror, 
onerror具體聲明如下:
window.onerror = function(messageOrEvent, source, lineno, colno, error) { ... }
    
因?yàn)閣indow.onerror是ECMAScript不標(biāo)準(zhǔn)的屬性,不同瀏覽器實(shí)現(xiàn)可能會(huì)略有
不同,error參數(shù)是raven上報(bào)日志的關(guān)鍵(ps: 沒有error,就找不到錯(cuò)誤棧
stack,自然就追蹤不到問題),所以raven客戶端巧用try, catch對錯(cuò)誤進(jìn)行捕
捉(ps:catch獲取到的error對象有raven需要的東西,比如錯(cuò)誤棧),然后采用
captureException進(jìn)行錯(cuò)誤上報(bào),核心源代碼如下:

對addEventListener、setTimeout、setInterval、
requestAnimationFrame等回調(diào)函數(shù)進(jìn)行了如上包裝,這樣就可以保證這些函數(shù)
的回調(diào)報(bào)錯(cuò)時(shí)候可以有錯(cuò)誤棧,同理,可以根據(jù)項(xiàng)目架構(gòu)對可能出現(xiàn)問題進(jìn)行
try..catch包裝,采用手動(dòng)上報(bào),做到最大限度錯(cuò)誤日志上報(bào)。
主動(dòng)上報(bào)
采用raven.captureException(msg/e, options),第一參數(shù)可以是字符串,
也可以是Error對象(ps: raven內(nèi)部會(huì)對所傳參數(shù)進(jìn)行判斷,如果是msg,會(huì)轉(zhuǎn)換
成Error對象),第二個(gè)參數(shù)options可設(shè)置參數(shù)同raven配置安裝時(shí)可以用的參數(shù)
同,只不過這里用到的參數(shù)作用域只限于此條錯(cuò)誤日志,raven.config中用的
options對所有錯(cuò)誤日志都生效。
應(yīng)用可使用的監(jiān)聽鉤子(*.adEventListener(如下事件,callback)

ravenSuccess | onRavenSuccess: raven上報(bào)成功之后會(huì)dispatch此事
件,可以監(jiān)聽此事件做一些其他的事情,比如上報(bào)到其他的平臺(tái)等等。

ravenFailure | onRavenFailure:raven上報(bào)失敗之后會(huì)dispatch此事
件,可以監(jiān)聽此事件做一些其他的事情,比如上報(bào)到其他的平臺(tái)等等。

ravenHandle | onRavenHandle:手動(dòng)調(diào)用Raven.captureException之
后會(huì)dispatch此事件,可以監(jiān)聽此事件做一些其他的事情,比如上報(bào)到其他的平臺(tái)
等等。

注意事項(xiàng)

總結(jié)一下就是根據(jù)自己的情況,可以設(shè)置一下whitelistUrls, ignoreErrors,
ignoreUrls,上報(bào)比例以及javascript跨域資源錯(cuò)誤統(tǒng)計(jì)處理(crossorigin),如果你使用webpack,可以在output中添加一個(gè)參數(shù)crossOriginLoading,webpack編譯時(shí)會(huì)自動(dòng)給按需加載的js獲取加上crossorigin,說明如下:

服務(wù)端response頭部添加Access-Control-Allow-Origin: *。

建議

公鑰,私鑰信息不要存放于前端頁面,可以放在中間服務(wù)器,走客戶端-》中間服務(wù)-》sentry服務(wù)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/89956.html

相關(guān)文章

  • Laravel學(xué)習(xí)筆記之Errors Tracking神器——Sentry

    摘要:中異常處理類主要包含兩個(gè)方法和,其中就是主要用來向第三方發(fā)送異常報(bào)告,這里選擇向這個(gè)神器發(fā)送異常報(bào)告,并使用通知開發(fā)人員。通過也能發(fā)現(xiàn)的執(zhí)行流程。 說明:Laravel學(xué)習(xí)筆記之bootstrap源碼解析中聊異常處理時(shí)提到過Sentry這個(gè)神器,并打算以后聊聊這款神器,本文主要就介紹這款Errors Tracking神器Sentry,Sentry官網(wǎng)有一句話個(gè)人覺得帥呆了: Stop ...

    xiguadada 評論0 收藏0
  • vue項(xiàng)目前端錯(cuò)誤收集之sentry

    摘要:我創(chuàng)建了一個(gè)名為的項(xiàng)目。錯(cuò)誤信息查看在后臺(tái)找到我們的項(xiàng)目,點(diǎn)擊進(jìn)去就能看到多了一條錯(cuò)誤信息。它由以下幾部分組成,分別是協(xié)議公鑰私鑰主機(jī)路徑一般為空項(xiàng)目。 sentry簡介 Sentry 是一個(gè)開源的錯(cuò)誤追蹤工具,可以幫助開發(fā)人員實(shí)時(shí)監(jiān)控和修復(fù)系統(tǒng)中的錯(cuò)誤。其專注于錯(cuò)誤監(jiān)控以及提取一切事后處理所需的信息;支持幾乎所有主流開發(fā)語言(JS/Java/Python/php)和平臺(tái), 并提供了w...

    RaoMeng 評論0 收藏0
  • Sentry - 處理異常日志的正確姿勢

    摘要:對我們來說最大的便利就是利用日志進(jìn)行錯(cuò)誤發(fā)現(xiàn)和排查的效率變高了。官方也提倡正確設(shè)置接收的日志的同時(shí),用戶也能繼續(xù)舊的日志備份。 在各種系統(tǒng)和應(yīng)用里,無論你的代碼再完美也還是會(huì)拋異常,出錯(cuò)誤。今天的主角是當(dāng)今比較流行的異常記錄框架 - Sentry,來了解一下。 關(guān)于日志管理 應(yīng)用越做越復(fù)雜,輸出日志五花八門,有print的,有寫stdout的,有寫stderr的, 有寫logging的...

    lifefriend_007 評論0 收藏0
  • 高效利用Sentry追蹤日志發(fā)現(xiàn)問題

    摘要:對我們來說最大的便利就是利用日志進(jìn)行錯(cuò)誤發(fā)現(xiàn)和排查的效率變高了。 面臨的問題 程序運(yùn)行的日志是一個(gè)必不可少的東西,可能是一些系統(tǒng)信息,比如?gc 的情況;可能是一些正常的模塊處理信息,比如最近更新的配置;還可能是一些在程序運(yùn)行中,我們不希望出現(xiàn)的錯(cuò)誤所帶來的信息。通過日志,可以知道我們的程序是不是在正常地運(yùn)行,看到錯(cuò)誤日志,我們還需要利用日志排查錯(cuò)誤。 我們知道日志如此重要,并樂于記錄...

    icyfire 評論0 收藏0
  • Vue 項(xiàng)目中接入sentry

    摘要:項(xiàng)目中接入最近在公司的內(nèi)部項(xiàng)目中接入技術(shù)棧,跟蹤運(yùn)行時(shí)錯(cuò)誤。具體的可以在你的項(xiàng)目中中查看三客戶端設(shè)置在客戶端中接入是簡單的,只需要配置插件就可以了。 Vue 項(xiàng)目中接入sentry 最近在公司的內(nèi)部Vue項(xiàng)目中接入sentry技術(shù)棧,跟蹤運(yùn)行時(shí)錯(cuò)誤。針對這件事分享下,有不完整或者錯(cuò)誤的地方歡迎交流。[源碼][1] 一、sentry 錯(cuò)誤日志收集框架 Stop hoping y...

    Magicer 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<