Skip to content

Fast.Logging

逐成员 API、参数与返回参考

版本 3.5.32;目标 net8.0net9.0net10.0;依赖 Fast.Runtime。扩展 ASP.NET Core 日志、控制台格式及按级别分文件输出。

bash
dotnet add package Fast.Logging

注册与选项

AddLoggingService(IServiceCollection services, IConfiguration configuration, string section = "Logging:Fast") 返回服务集合,绑定 LoggingSettingsOptions、注册控制台格式与符合级别的文件 Provider,并添加启动过滤器。

字段后配置默认值
FileFormat/{0:yyyy}/{0:MM}/{0:dd}/{0:HH}
FileSizeLimit10485760 字节,即 10 MiB
MiniLogLevelLogLevel.Information,注意公开名称是 MiniLogLevel
EnableCriticalfalse,Critical 文件输出另受此开关控制

文件名基于 logs/<level><FileFormat>.log。目录权限、容量和保留策略由宿主负责;仅安装包不保证文件成功写入。

以下为消费端 Program.cs,使用 Microsoft.NET.Sdk.Web,目标选择本页列出的 .NET 8、9 或 10,并安装上方指定包。app.Run() 表示正常宿主启动;本次文档维护不会执行它。

csharp
using Fast.Logging;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Builder;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddLoggingService(builder.Configuration);

var app = builder.Build();
app.Logger.LogInformation("Application configured");
app.MapGet("/health", () => "healthy");
app.Run();

public sealed class Worker(ILogger<Worker> logger)
{
    public void Report(int count) => logger.LogInformation("Processed {Count} items", count);
}

公开 API

API / 类型使用方式
Log.Information/Warning/Error/Debug/Trace/Critical消息与参数重载,另有 EventId、Exception 和泛型日志类别版本
Log.CreateLogger<T>()返回 ILogger,依赖模块的服务上下文
Log.CreateLoggerFactory(Action<ILoggingBuilder> configure = null)创建工厂;调用者注意工厂生命周期与释放
Log.ScopeContext(...)接收字典、Action<LogContext> 或 LogContext,返回 (ILogger logger, IDisposable scope);必须释放 scope
Log.Default() / StringLoggingPart构造链式日志片段,最终按公开链式 API 输出
LogContextLogContextExtension结构化日志上下文
LogMessageLogMessageExtensionLoggerFormatter日志消息与格式化支持
LoggingContext框架日志上下文入口,不替代请求作用域

控制台格式器通过 Provider 提供的 TextWriter 写入;重定向与颜色由 Provider 协调。文件与异常输出可能包含调用方传入的数据,业务代码需在进入日志前处理敏感字段,不能依赖格式器自动删除凭据。

来源与验证

依据 注册实现日志入口。本轮未编译示例、未创建日志文件或验证平台终端行为。