Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class BootstrapBlazorErrorBoundary : ErrorBoundaryBase
{
[Inject]
[NotNull]
private ILogger<ErrorLogger>? Logger { get; set; }
private ILogger<BootstrapBlazorErrorBoundary>? Logger { get; set; }

[Inject]
[NotNull]
Expand Down Expand Up @@ -48,6 +48,12 @@ class BootstrapBlazorErrorBoundary : ErrorBoundaryBase
[Parameter]
public bool ShowToast { get; set; } = true;

/// <summary>
/// 获得/设置 是否启用日志记录功能 默认 true 启用
/// </summary>
[Parameter]
public bool EnableILogger { get; set; } = true;

/// <summary>
/// 获得/设置 Toast 弹窗标题
/// </summary>
Expand All @@ -61,7 +67,10 @@ class BootstrapBlazorErrorBoundary : ErrorBoundaryBase
/// <param name="exception"></param>
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;
}

Expand Down
7 changes: 7 additions & 0 deletions src/BootstrapBlazor/Components/ErrorLogger/ErrorLogger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ public class ErrorLogger : ComponentBase, IErrorLogger
[Parameter]
public bool ShowToast { get; set; } = true;

/// <summary>
/// <inheritdoc/>
/// </summary>
[Parameter]
public bool EnableILogger { get; set; } = true;

/// <summary>
/// <inheritdoc/>
/// </summary>
Expand Down Expand Up @@ -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();
};
Expand Down
6 changes: 6 additions & 0 deletions src/BootstrapBlazor/Components/ErrorLogger/IErrorLogger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ public interface IErrorLogger
/// </summary>
bool ShowToast { get; }

/// <summary>
/// 获得/设置 是否启用日志记录功能 默认 true 启用
/// <para>设置 false 后关闭记录日志功能</para>
/// </summary>
bool EnableILogger { get; }

/// <summary>
/// 获得 Error Toast 弹窗标题 默认读取资源文件内容
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/BootstrapBlazor/Components/Layout/Layout.razor
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@
else
{
<ErrorLogger EnableErrorLogger="@_enableErrorLogger" ShowToast="@_showToast" ToastTitle="@ErrorLoggerToastTitle"
OnErrorHandleAsync="OnErrorHandleAsync" OnInitializedCallback="OnErrorLoggerInitialized">
EnableILogger="@_enableILogger" OnErrorHandleAsync="OnErrorHandleAsync" OnInitializedCallback="OnErrorLoggerInitialized">
@HandlerMain()
</ErrorLogger>
}
Expand Down
8 changes: 8 additions & 0 deletions src/BootstrapBlazor/Components/Layout/Layout.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,12 @@ public partial class Layout : IHandlerException, ITabHeader
[Parameter]
public bool? ShowErrorLoggerToast { get; set; }

/// <summary>
/// 获得/设置 是否启用日志记录功能 默认 null 启用 使用 <see cref="BootstrapBlazorOptions.EnableErrorLoggerILogger"/> 设置值
/// </summary>
[Parameter]
public bool? EnableErrorLoggerILogger { get; set; }

/// <summary>
/// 获得/设置 错误日志 <see cref="Toast"/> 弹窗标题 默认 null
/// </summary>
Expand Down Expand Up @@ -503,6 +509,8 @@ public partial class Layout : IHandlerException, ITabHeader

private bool _showToast => ShowErrorLoggerToast ?? Options.CurrentValue.ShowErrorLoggerToast;

private bool _enableILogger => EnableErrorLoggerILogger ?? Options.CurrentValue.EnableErrorLoggerILogger;

/// <summary>
/// <inheritdoc/>
/// </summary>
Expand Down
6 changes: 6 additions & 0 deletions src/BootstrapBlazor/Options/BootstrapBlazorOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone

using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging;
using System.Globalization;

namespace BootstrapBlazor.Components;
Expand Down Expand Up @@ -53,6 +54,11 @@ public class BootstrapBlazorOptions : IOptions<BootstrapBlazorOptions>
/// </summary>
public bool ShowErrorLoggerToast { get; set; } = true;

/// <summary>
/// Gets or sets a value indicating whether error logging using an <see cref="ILogger"/> is enabled, default is true.
/// </summary>
public bool EnableErrorLoggerILogger { get; set; } = true;

/// <summary>
/// Gets or sets whether to fall back to the fallback culture, default is true
/// </summary>
Expand Down
1 change: 1 addition & 0 deletions test/UnitTest/Components/LayoutTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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 =>
Expand Down