1 回答

TA贡献1834条经验 获得超8个赞
ASP.NET Core 日志基础结构是在应用程序请求管道之前构建的。出于这个原因,我们只能通过日志集成捕获应用程序启动期间发生的异常。
仅 使用时捕获应用程序初始化错误的原因Sentry.AspNetCore
是此包依赖于Sentry.Extensions.Logging
.
当您这样做时UseSentry
,它会在内部挂钩到框架日志基础结构中。类中的崩溃Startup
发生在应用程序实际构建之前(完成ConfigureServices
并Configure
需要启动应用程序),因此只有使用日志记录集成,我们才能在此时捕获错误。
添加Serilog
到您的应用程序后,默认的日志记录后端将被替换。这意味着现在已经接管了对日志记录基础设施的挂钩Sentry.Extensions.Logging
不再生效。Serilog
因此,您也需要添加包Sentry.Serilog
。Serilog
在这种情况下,添加两个包后,只有当您通过集成初始化 SDK(就像您根据上一条评论所做的那样)时,您才能捕获引导错误。为了避免混淆(为什么我需要两次提供我的 DSN?),示例中没有这样做,但在幕后发生的事情是,由 Serilog 完成的第一次初始化只有在该Startup
过程完成之前才真正有用。初始化Sentry.AspNetCore
后,它将关闭Serilog
集成创建的第一个客户端并刷新所有事件并将新客户端添加到主范围。这确保请求数据之类的东西也被添加到事件中。
- 1 回答
- 0 关注
- 174 浏览
添加回答
举报