Dej*_*lar 5 c# blazor .net-6.0
我想在 Blazor 服务器应用程序中发生未处理的异常时记录浏览器中设置的 URL 。
我使用 Serilog 进行日志记录,还使用请求日志记录中间件。
builder.Host.UseSerilog();
app.UseSerilogRequestLogging;
Run Code Online (Sandbox Code Playgroud)
但这还不够,因为只有一个 HTTP 请求,然后 Blazor SignalR 连接就会打开。因此,Serilog 不知道 Blazor 设置的浏览器中的实际路径,并且始终返回/_blazor,这是有道理的。
我不想将所有函数包装在try - catch块中来记录异常。Blazor 类型还处理异常并设置blazor-error-ui元素的 CSS。
为了尝试重现错误,我需要异常发生时在浏览器中设置的 URL。有没有办法捕获全局异常并以某种方式获取浏览器中设置的 URL?也许可以访问该NavigationManager对象?
小智 0
@inherits LayoutComponentBase
<div class="page">
<div class="sidebar">
<NavMenu />
</div>
<main>
<div class="top-row px-4">
<a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
</div>
<article class="content px-4">
<ErrorBoundary>
<ChildContent>
@Body
</ChildContent>
<ErrorContent>
<p>💥 Something blew up!</p>
@{
Logging Actions
Get your current uri NavigationManager.Uri
}
</ErrorContent>
</ErrorBoundary>
</article>
</main>
</div>
Run Code Online (Sandbox Code Playgroud)
使用ErrorBoundary 组件将指令
包装在组件@Body内ErrorBoundary。这将捕获在@Body.
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |