新闻中心
C#怎么使用Microsoft.Extensions.Logging .NET通用日志框架用法
.NET中推荐使用Microsoft.Extensions.Logging实现轻量可扩展的日志功能,支持Console、Debug等提供程序,通过依赖注入ILogger并配置级别与过滤规则实现结构化日志。

在.NET中使用 Microsoft.Extensions.Logging 是标准且推荐的日志方式,它轻量、可扩展、支持多种日志提供程序(如 Console、Debug、EventLog、第三方如 Serilog),且与 ASP.NET Core 深度集成。核心在于配置 ILogger<t></t> 实例并注入使用,不依赖具体实现。
1. 安装必要 NuGet 包
确保项目引用以下基础包(.NET 5+ 通常已内置,但显式安装更稳妥):
-
Microsoft.Extensions.Logging(核心接口和抽象) -
Microsoft.Extensions.Logging.Console(控制台输出,开发常用) -
Microsoft.Extensions.Logging.Debug(输出到 Visual Studio 输出窗口)
可通过包管理器命令安装:
Install-Package Microsoft.Extensions.Logging.Console2. 创建和配置 ILogger 实例
最常见的是在 Program.cs(.NET 6+)中配置日志服务:
var builder = WebApplication.CreateBuilder(args); <p>// 日志配置已默认添加,可进一步自定义 builder.Logging.ClearProviders(); // 可选:清空默认提供程序 builder.Logging.AddConsole(); // 添加控制台日志 builder.Logging.AddDebug(); // 添加调试日志</p><p>var app = builder.Build();
非 Web 场景(如控制台应用)可手动构建 IServiceCollection:
var services = new ServiceCollection();
services.AddLogging(builder =>
{
builder.AddConsole();
builder.SetMinimumLevel(LogLevel.Information);
});
<p>var provider = services.BuildServiceProvider();
var logger = provider.GetRequiredService<ILogger<Program>>();
logger.LogInformation("Hello from console app!");
3. 在类中注入并使用 ILogger<t></t>
推荐按类型注入,避免静态或全局 logger:
拾贝
一键同步微信读书所有笔记和划线,并在新标签页回顾
186
查看详情
public class UserService
{
private readonly ILogger<UserService> _logger;
<pre class="brush:php;toolbar:false;">public UserService(ILogger<UserService> logger)
{
_logger = logger;
}
public void AddUser(string name)
{
_logger.LogInformation("Adding user: {Name}", name);
_logger.LogWarning("User {Name} already exists", name);
_logger.LogError(new Exception("DB timeout"), "Failed to s*e user {Name}", name);
}}
注意:
- 使用占位符 {Name} 而非字符串拼接,支持结构化日志(便于后续分析)
- 日志级别有 Trace/Debug/Information/Warning/Error/Critical,按需选择
- 异常应传入 LogError(Exception, ...) 重载,确保堆栈被记录
4. 配置日志级别和过滤规则
可在 appsettings.json 中精细化控制:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning",
"MyApp.Services.UserService": "Debug"
}
}
也可代码中配置:
builder.Logging.AddFilter("MyApp.Services", LogLevel.Debug);
builder.Logging.AddFilter<ConsoleLoggerProvider>(level => level >= LogLevel.Warning);
过滤器支持按类别名、提供程序类型或委托判断,灵活应对不同环境需求。
基本上就这些。用好 ILogger<t></t> 的关键不是功能
多,而是统一入口、结构化输出、按需分级、配置驱动——不复杂但容易忽略细节。
以上就是C#怎么使用Microsoft.Extensions.Logging .NET通用日志框架用法的详细内容,更多请关注其它相关文章!
# 按需
# 视频营销推广选哪些
# 湘潭网站建设美丽中国
# 云浮定制网站建设电话
# seo html 优化
# seo原创文章工具
# 桔子网站建设方案
# 快闪店策划方案网站推广
# 临汾远程指导网站建设
# 美团营销推广岗位
# 网站优化职位怎么做
# 推荐使用
# 如何在
# 序列化
# 是在
# js
# 操作指南
# 如何将
# 如何使用
# 结构化
# 拾贝
# red
# .net
# c#
# microsoft
# ai
# 栈
# app
# json
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
HTML空白字符处理机制:渲染、DOM与编码实践
mc.js游戏直达 mc.js网页免下载版本秒进地址
微信客户端如何收红包_微信客户端接收红包使用教程
Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值
Spring Boot嵌入式服务器与J*a EE:功能支持深度解析
优化LangChain文档加载与ChromaDB集成:解决多文档处理与分块问题
构建轻量级网站内部消息系统:Formspree 集成指南
深入理解Go语言中的指针类型:以*string为例
单射、满射与双射的关系 一文理清所有逻辑
网站内容防复制粘贴的实现策略与局限性
Win10如何清理注册表垃圾 Win10注册表维护与优化指南【慎用】
qq游戏大厅官方下载_qq游戏免费下载安装入口
sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程
怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法
windows10怎么查看硬盘序列号_windows10硬盘id查询命令
Go语言中JSON数据解析与字段访问教程
纯CSS与HTML网格布局的HTML精简策略:SVG与JS方案解析
在Go Martini框架中高效服务动态生成图像的实践指南
Angular中父组件异步更新子组件复选框状态的实践指南
蛙漫画网页版全站入口 蛙漫热门作品免费浏览
J*a里如何使用forEach遍历Map_Map遍历方法说明
Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略
漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道
谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法
如何将HTML表格多行数据保存到Google Sheet
为什么我的微信朋友圈看不到别人的更新_微信朋友圈更新显示异常解决方法
word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法
LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别
2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享
铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧
Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法
火狐浏览器占用内存高卡顿怎么办 火狐浏览器性能优化设置技巧
谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】
Bing引擎入口最新2025 Bing搜索免费官方登录
outlook中文官网入口地址 outlook官方中文版直达首页链接
qq游戏跨平台入口_qq游戏多设备同步登录
迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法
天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】
邮编格式怎么匹配地址_根据邮编格式快速匹配详细地址的技巧
一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化
vivo手机互传视频怎么操作_vivo手机互传视频详细传输方法
2026年CSGO开箱网站推荐 CSGO开箱平台精选
ArrayList与LinkedList核心操作的Big-O复杂度分析
Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】
抖音网页版快捷访问 抖音网页版网页版入口操作教程
Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】
在FastAPI中利用lifespan与依赖注入高效管理Redis连接池
sublime怎么设置启动时打开的窗口_sublime会话管理与热退出
Win11怎么设置鼠标指针速度_Win11提高鼠标指针精确度选项
腾讯视频怎么使用多账号家庭管理_腾讯视频家庭多账号统一管理与权限分配教程


2025-12-13
浏览次数:次
返回列表