You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Logging.AddSerilog与Services.AddSerilog注册Serilog有何差异?

Serilog两种注册方式的差异

这两种注册方式本质是Serilog适配不同.NET依赖注入体系的实现,核心差异主要体现在以下几点:

  • 所属扩展体系不同
    旧方式的builder.Logging.AddSerilog()是针对ILoggingBuilder的扩展,属于Serilog.Extensions.Hosting命名空间,专门围绕日志系统的配置做扩展;新方式的builder.Services.AddSerilog()是针对IServiceCollection的扩展,属于Serilog.AspNetCore命名空间,把Serilog的注册整合到通用服务注入流程里。

  • 配置逻辑侧重点不同
    旧方式更偏向直接操作日志提供器,比如可以配合ClearProviders()移除默认日志组件,快速替换成Serilog;新方式则是把Serilog作为一项服务注册到DI容器,注册时还能直接传入自定义配置逻辑(比如AddSerilog((services, config) => { config.WriteTo.Console(); })),和其他服务的注册逻辑更统一,灵活性更高。

  • ASP.NET Core集成深度不同
    旧方式只是单纯把Serilog添加为日志提供器,功能相对基础;新方式是官方当前主推的ASP.NET Core集成方案,除了注册日志提供器,还会自动处理ASP.NET Core特有的细节,比如请求日志联动、主机生命周期适配等,更贴合现代ASP.NET Core的架构设计。

  • 版本适配性不同
    旧方式是Serilog早期扩展提供的,兼容.NET Core 3.x及更早版本;新方式是Serilog.AspNetCore新版本推出的,适配.NET 5+及后续的ASP.NET Core DI体系。

内容的提问来源于stack exchange,提问作者lonix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:39:54