mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 00:39:00 +08:00
- 拆分 CqrsHandlerRegistrarTests 尾部的测试辅助类型到同目录同名文件 - 保持 CQRS handler registrar 测试行为与 XML 文档不变并消除该切片的 MA0048 warning
50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
using System.Collections.Generic;
|
|
using GFramework.Core.Abstractions.Logging;
|
|
using GFramework.Core.Logging;
|
|
using GFramework.Cqrs.Tests.Logging;
|
|
|
|
namespace GFramework.Cqrs.Tests.Cqrs;
|
|
|
|
/// <summary>
|
|
/// 为 CQRS 注册测试捕获真实启动路径中创建的日志记录器。
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// 处理器注册入口会分别为测试运行时、容器和注册器创建日志器。
|
|
/// 该提供程序统一保留这些测试日志器,以便断言警告是否经由公开入口真正发出。
|
|
/// </remarks>
|
|
internal sealed class CapturingLoggerFactoryProvider : ILoggerFactoryProvider
|
|
{
|
|
private readonly List<TestLogger> _loggers = [];
|
|
|
|
/// <summary>
|
|
/// 使用指定的最小日志级别初始化一个新的捕获型日志工厂提供程序。
|
|
/// </summary>
|
|
/// <param name="minLevel">要应用到新建测试日志器的最小日志级别。</param>
|
|
public CapturingLoggerFactoryProvider(LogLevel minLevel = LogLevel.Info)
|
|
{
|
|
MinLevel = minLevel;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取通过当前提供程序创建的全部测试日志器。
|
|
/// </summary>
|
|
public IReadOnlyList<TestLogger> Loggers => _loggers;
|
|
|
|
/// <summary>
|
|
/// 获取或设置新建测试日志器的最小日志级别。
|
|
/// </summary>
|
|
public LogLevel MinLevel { get; set; }
|
|
|
|
/// <summary>
|
|
/// 创建一个测试日志器并将其纳入捕获集合。
|
|
/// </summary>
|
|
/// <param name="name">日志记录器名称。</param>
|
|
/// <returns>用于后续断言的测试日志器。</returns>
|
|
public ILogger CreateLogger(string name)
|
|
{
|
|
var logger = new TestLogger(name, MinLevel);
|
|
_loggers.Add(logger);
|
|
return logger;
|
|
}
|
|
}
|