Skip to content

Commit 945c952

Browse files
committed
feat: Layout 内置 ErrorLogger
1 parent fa30afb commit 945c952

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

src/BootstrapBlazor/Components/Layout/Layout.razor

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,10 @@
126126
}
127127
else
128128
{
129-
@HandlerMain()
129+
<ErrorLogger EnableErrorLogger="@_enableErrorLoggerValue" ShowToast="@_showToast" ToastTitle="@ErrorLoggerToastTitle"
130+
OnErrorHandleAsync="OnErrorHandleAsync">
131+
@HandlerMain()
132+
</ErrorLogger>
130133
}
131134
</main>;
132135

src/BootstrapBlazor/Components/Layout/Layout.razor.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Microsoft.AspNetCore.Components.Authorization;
77
using Microsoft.AspNetCore.Components.Routing;
88
using Microsoft.Extensions.Localization;
9+
using Microsoft.Extensions.Logging;
910
using System.Reflection;
1011

1112
namespace BootstrapBlazor.Components;
@@ -452,12 +453,40 @@ public partial class Layout : IHandlerException, ITabHeader
452453
[Parameter]
453454
public object? Resource { get; set; }
454455

456+
/// <summary>
457+
/// 获得/设置 是否开启全局异常捕获 默认 null 读取配置文件 EnableErrorLogger 值
458+
/// </summary>
459+
[Parameter]
460+
public bool? EnableErrorLogger { get; set; }
461+
462+
/// <summary>
463+
/// 获得/设置 是否显示 Error 提示弹窗 默认 null 使用 <see cref="BootstrapBlazorOptions.ShowErrorLoggerToast"/> 设置值
464+
/// </summary>
465+
[Parameter]
466+
public bool? ShowErrorLoggerToast { get; set; }
467+
468+
/// <summary>
469+
/// 获得/设置 错误日志 <see cref="Toast"/> 弹窗标题 默认 null
470+
/// </summary>
471+
[Parameter]
472+
public string? ErrorLoggerToastTitle { get; set; }
473+
474+
/// <summary>
475+
/// 获得/设置 自定义错误处理回调方法
476+
/// </summary>
477+
[Parameter]
478+
public Func<ILogger, Exception, Task>? OnErrorHandleAsync { get; set; }
479+
455480
/// <summary>
456481
/// 获得 登录授权信息
457482
/// </summary>
458483
[CascadingParameter]
459484
private Task<AuthenticationState>? AuthenticationStateTask { get; set; }
460485

486+
[Inject]
487+
[NotNull]
488+
private IOptionsMonitor<BootstrapBlazorOptions>? Options { get; set; }
489+
461490
[Inject, NotNull]
462491
private IServiceProvider? ServiceProvider { get; set; }
463492

@@ -470,6 +499,10 @@ public partial class Layout : IHandlerException, ITabHeader
470499

471500
private ITabHeader? TabHeader => ShowTabInHeader ? this : null;
472501

502+
private bool _enableErrorLoggerValue => EnableErrorLogger ?? Options.CurrentValue.EnableErrorLogger;
503+
504+
private bool _showToast => ShowErrorLoggerToast ?? Options.CurrentValue.ShowErrorLoggerToast;
505+
473506
/// <summary>
474507
/// <inheritdoc/>
475508
/// </summary>

0 commit comments

Comments
 (0)