1 回答

TA貢獻1834條經(jīng)驗 獲得超8個贊
ASP.NET Core 日志基礎結構是在應用程序請求管道之前構建的。出于這個原因,我們只能通過日志集成捕獲應用程序啟動期間發(fā)生的異常。
僅 使用時捕獲應用程序初始化錯誤的原因Sentry.AspNetCore
是此包依賴于Sentry.Extensions.Logging
.
當您這樣做時UseSentry
,它會在內(nèi)部掛鉤到框架日志基礎結構中。類中的崩潰Startup
發(fā)生在應用程序實際構建之前(完成ConfigureServices
并Configure
需要啟動應用程序),因此只有使用日志記錄集成,我們才能在此時捕獲錯誤。
添加Serilog
到您的應用程序后,默認的日志記錄后端將被替換。這意味著現(xiàn)在已經(jīng)接管了對日志記錄基礎設施的掛鉤Sentry.Extensions.Logging
不再生效。Serilog
因此,您也需要添加包Sentry.Serilog
。Serilog
在這種情況下,添加兩個包后,只有當您通過集成初始化 SDK(就像您根據(jù)上一條評論所做的那樣)時,您才能捕獲引導錯誤。為了避免混淆(為什么我需要兩次提供我的 DSN?),示例中沒有這樣做,但在幕后發(fā)生的事情是,由 Serilog 完成的第一次初始化只有在該Startup
過程完成之前才真正有用。初始化Sentry.AspNetCore
后,它將關閉Serilog
集成創(chuàng)建的第一個客戶端并刷新所有事件并將新客戶端添加到主范圍。這確保請求數(shù)據(jù)之類的東西也被添加到事件中。
- 1 回答
- 0 關注
- 166 瀏覽
添加回答
舉報