貓哥說
這個 Sentry 是一個錯誤收集平臺方案,個人專案是免費的。
現在針對 Flutter 已經很成熟,可以同時收集 Dart、Flutter、原生端的錯誤。
貓哥在企業中是自己搭建了 Sentry 服務,這個是可以私有化的。
原文
程式碼
通過這種方式,您將能夠監視和獲得錯誤通知,並在客戶開始抱怨之前提前解決它們。因為工作程式碼 = = 快樂的客戶。
參考
正文
想象一下你是一個獨立的開發者,你在度假之前開發了一個新功能,在週末前幾天將它部署到生產環境中,當客戶開始積極使用它時,使用者的問題和抱怨開始出現,你已經開啟了你的度假情緒。正如通常的口號所說,“顧客永遠是對的”,你決定優先考慮顧客的滿意度而不是假期,並恢復工作情緒。可能會令人沮喪,對吧?
以下是如何向服務報告錯誤,從而避免在客戶之前出現未知的潛在錯誤或問題,因為工作程式碼等同於滿意的客戶。
您可以向許多服務報告程式碼錯誤。但是,在本文中,您將瞭解如何監視應用程式和潛在錯誤或 bug,並使用 Sentry 報告它們。
什麼是 Sentry?
Sentry 是一個應用程式監視平臺,它使開發人員能夠監視、診斷、修復和優化其程式碼的效能。
讓我們開始吧
使用 Sentry 建立一個帳戶
如果你在 Sentry 上還沒有帳號,在這裡建立一個:
建立一個新的 Sentry Flutter 應用
接下來,登入到剛剛建立的 Sentry 帳戶,建立 Flutter 應用程式。
按照下面的步驟成功地建立新專案。
- 建立新專案
登入之後,選擇 create project 圖示來建立一個新專案。
- 選擇開發平臺
有各種各樣的開發平臺支援 Sentry,包括 Python,Express,Spring Boot,Android 等等,但是本文只關注 Flutter。因此,從列表中選擇 Flutter。
- 設定預設警報設定
接下來,將預設警報設定設定為在發生任何錯誤時何時以及如何獲取警報的頻率。在本文中,我將選擇獲取任何新問題的警報選項,但您始終可以選擇任何您想要的選項。
- 最後,給你的專案起個名字
在本文中,我將給它命名為撲哨測試,然後,建立專案。
- 從 Sentry 獲取 DSN
為了向 Sentry 報告錯誤,您需要一個 DSN (資料來源名稱) ,它將用 Sentry 服務唯一地標識您的應用程式。因此,在 Sentry 上建立專案之後,我們將從上面步驟中建立的應用程式中複製 DSN。
要獲得 DSN,在您剛剛從上面建立的專案中,導航到專案設定並向下滾動到客戶機金鑰(DSN) ,如下所示:
接下來,在選擇客戶端金鑰之後,客戶端金鑰選項卡將顯示出來,從那裡您將複製 DSN,如下所示:
建立一個 Flutter 應用程式,用於向 Sentry 報告錯誤
這一步假設,您已經有了一些關於如何建立一個新的 Flutter 專案的實踐經驗。如果你是新的 Flutter 檢驗官方 Flutter 檔案。你也可以看看我的文章《如何用 Flutter 開始》
現在讓我們建立一個示例 Flutter 應用程式,用於向 Sentry 服務報告錯誤。
在終端上,輸入 $flutter create Command,後跟應用程式的名稱。在這種情況下,我們將使用名稱 flutter _ sentry _ test。
$ flutter create flutter_sentry_test
複製程式碼
注意: 您也可以根據自己的喜好在各自的 IDE 上建立應用程式。
匯入 Flutter Sentry 包
在應用程式中安裝 Sentry,將其新增到 pubspec.yaml 檔案中
配置和初始化 Sentry SDK
在 main.dart 檔案中,匯入 sentry 包。
接下來,新增將捕獲應用程式中未處理的異常的配置。在此步驟中,用您在步驟 2 中建立的應用程式中的 Sentry DSN 替換 DSN url。從上面的 Sentry 那裡得到一個 DSN。
您還可以通過 Dart 環境變數配置 SENTRY _ dsn,方法是將 -- Dart-define 標誌傳遞給編譯器,如下例所示:
--dart-define SENTRY_DSN = 'https://your-sentry.io DSN'
複製程式碼
驗證
最後,在這個步驟中,為了測試目的,通過在程式碼中新增一個有意識的錯誤來驗證是否傳送了錯誤。
這將丟擲一個 State Error,它將被髮送到 Sentry.io 服務
你可以通過導航到你的 Sentry 應用程式來確認這一點
在我的例子中,這裡是傳送到我的 Flutter Sentry 應用程式的 State Error
下面是示例應用程式如何向 Sentry 傳送錯誤的演示:
點選這裡檢視完整的程式碼片段:
通過這種方式,您將能夠監視和獲得錯誤通知,並在客戶開始抱怨之前提前解決它們。因為工作程式碼 = = 快樂的客戶。
© 貓哥
往期
開源
GetX Quick Start
新聞客戶端
strapi 手冊譯文
微信討論群 ducafecat
系列集合
譯文
開源專案
Dart 程式語言基礎
space.bilibili.com/404904528/c…
Flutter 零基礎入門
space.bilibili.com/404904528/c…
Flutter 實戰從零開始 新聞客戶端
space.bilibili.com/404904528/c…
Flutter 元件開發
space.bilibili.com/404904528/c…
Flutter Bloc
space.bilibili.com/404904528/c…
Flutter Getx4
space.bilibili.com/404904528/c…