diff --git a/src/BootstrapBlazor/Components/ErrorLogger/BootstrapBlazorErrorBoundary.cs b/src/BootstrapBlazor/Components/ErrorLogger/BootstrapBlazorErrorBoundary.cs index a36ba9b1568..5534cdd5176 100644 --- a/src/BootstrapBlazor/Components/ErrorLogger/BootstrapBlazorErrorBoundary.cs +++ b/src/BootstrapBlazor/Components/ErrorLogger/BootstrapBlazorErrorBoundary.cs @@ -18,7 +18,7 @@ class BootstrapBlazorErrorBoundary : ErrorBoundaryBase { [Inject] [NotNull] - private ILogger? Logger { get; set; } + private ILogger? Logger { get; set; } [Inject] [NotNull] @@ -48,6 +48,12 @@ class BootstrapBlazorErrorBoundary : ErrorBoundaryBase [Parameter] public bool ShowToast { get; set; } = true; + /// + /// 获得/设置 是否启用日志记录功能 默认 true 启用 + /// + [Parameter] + public bool EnableILogger { get; set; } = true; + /// /// 获得/设置 Toast 弹窗标题 /// @@ -61,7 +67,10 @@ class BootstrapBlazorErrorBoundary : ErrorBoundaryBase /// protected override Task OnErrorAsync(Exception exception) { - Logger.LogError(exception, "{BootstrapBlazorErrorBoundary} {OnErrorAsync} log this error occurred at {Page}", nameof(BootstrapBlazorErrorBoundary), nameof(OnErrorAsync), NavigationManager.Uri); + if (EnableILogger) + { + Logger.LogError(exception, "BootstrapBlazorErrorBoundary OnErrorAsync log this error occurred at {Page}", NavigationManager.Uri); + } return Task.CompletedTask; } diff --git a/src/BootstrapBlazor/Components/ErrorLogger/ErrorLogger.cs b/src/BootstrapBlazor/Components/ErrorLogger/ErrorLogger.cs index b6b195dd3fe..589ed2932c7 100644 --- a/src/BootstrapBlazor/Components/ErrorLogger/ErrorLogger.cs +++ b/src/BootstrapBlazor/Components/ErrorLogger/ErrorLogger.cs @@ -30,6 +30,12 @@ public class ErrorLogger : ComponentBase, IErrorLogger [Parameter] public bool ShowToast { get; set; } = true; + /// + /// + /// + [Parameter] + public bool EnableILogger { get; set; } = true; + /// /// /// @@ -112,6 +118,7 @@ protected override void BuildRenderTree(RenderTreeBuilder builder) builder.AddAttribute(3, nameof(BootstrapBlazorErrorBoundary.ToastTitle), ToastTitle); builder.AddAttribute(4, nameof(BootstrapBlazorErrorBoundary.ErrorContent), ErrorContent); builder.AddAttribute(5, nameof(BootstrapBlazorErrorBoundary.ChildContent), ChildContent); + builder.AddAttribute(6, nameof(BootstrapBlazorErrorBoundary.EnableILogger), EnableILogger); builder.AddComponentReferenceCapture(5, obj => _errorBoundary = (BootstrapBlazorErrorBoundary)obj); builder.CloseComponent(); }; diff --git a/src/BootstrapBlazor/Components/ErrorLogger/IErrorLogger.cs b/src/BootstrapBlazor/Components/ErrorLogger/IErrorLogger.cs index 7a0f261e1ba..b50de90a597 100644 --- a/src/BootstrapBlazor/Components/ErrorLogger/IErrorLogger.cs +++ b/src/BootstrapBlazor/Components/ErrorLogger/IErrorLogger.cs @@ -27,6 +27,12 @@ public interface IErrorLogger /// bool ShowToast { get; } + /// + /// 获得/设置 是否启用日志记录功能 默认 true 启用 + /// 设置 false 后关闭记录日志功能 + /// + bool EnableILogger { get; } + /// /// 获得 Error Toast 弹窗标题 默认读取资源文件内容 /// diff --git a/src/BootstrapBlazor/Components/Layout/Layout.razor b/src/BootstrapBlazor/Components/Layout/Layout.razor index 49d8adb1b04..bd76cfaa9b6 100644 --- a/src/BootstrapBlazor/Components/Layout/Layout.razor +++ b/src/BootstrapBlazor/Components/Layout/Layout.razor @@ -127,7 +127,7 @@ else { + EnableILogger="@_enableILogger" OnErrorHandleAsync="OnErrorHandleAsync" OnInitializedCallback="OnErrorLoggerInitialized"> @HandlerMain() } diff --git a/src/BootstrapBlazor/Components/Layout/Layout.razor.cs b/src/BootstrapBlazor/Components/Layout/Layout.razor.cs index 8b05464116d..477057934e6 100644 --- a/src/BootstrapBlazor/Components/Layout/Layout.razor.cs +++ b/src/BootstrapBlazor/Components/Layout/Layout.razor.cs @@ -465,6 +465,12 @@ public partial class Layout : IHandlerException, ITabHeader [Parameter] public bool? ShowErrorLoggerToast { get; set; } + /// + /// 获得/设置 是否启用日志记录功能 默认 null 启用 使用 设置值 + /// + [Parameter] + public bool? EnableErrorLoggerILogger { get; set; } + /// /// 获得/设置 错误日志 弹窗标题 默认 null /// @@ -503,6 +509,8 @@ public partial class Layout : IHandlerException, ITabHeader private bool _showToast => ShowErrorLoggerToast ?? Options.CurrentValue.ShowErrorLoggerToast; + private bool _enableILogger => EnableErrorLoggerILogger ?? Options.CurrentValue.EnableErrorLoggerILogger; + /// /// /// diff --git a/src/BootstrapBlazor/Options/BootstrapBlazorOptions.cs b/src/BootstrapBlazor/Options/BootstrapBlazorOptions.cs index b746461605a..bd0bc0fb055 100644 --- a/src/BootstrapBlazor/Options/BootstrapBlazorOptions.cs +++ b/src/BootstrapBlazor/Options/BootstrapBlazorOptions.cs @@ -4,6 +4,7 @@ // Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone using Microsoft.Extensions.Localization; +using Microsoft.Extensions.Logging; using System.Globalization; namespace BootstrapBlazor.Components; @@ -53,6 +54,11 @@ public class BootstrapBlazorOptions : IOptions /// public bool ShowErrorLoggerToast { get; set; } = true; + /// + /// Gets or sets a value indicating whether error logging using an is enabled, default is true. + /// + public bool EnableErrorLoggerILogger { get; set; } = true; + /// /// Gets or sets whether to fall back to the fallback culture, default is true /// diff --git a/test/UnitTest/Components/LayoutTest.cs b/test/UnitTest/Components/LayoutTest.cs index fa8c89418d0..e778aa92225 100644 --- a/test/UnitTest/Components/LayoutTest.cs +++ b/test/UnitTest/Components/LayoutTest.cs @@ -568,6 +568,7 @@ public void ErrorLogger_LifeCycle() pb.Add(a => a.UseTabSet, false); pb.Add(a => a.EnableErrorLogger, true); pb.Add(a => a.ShowErrorLoggerToast, false); + pb.Add(a => a.EnableErrorLoggerILogger, false); pb.Add(a => a.ErrorLoggerToastTitle, "Title"); // 按钮触发异常 pb.Add(a => a.Main, new RenderFragment(builder =>