新闻中心
C#的日志记录(Logging)是什么?如何集成Serilog或NLog?
答案:C#中常用Serilog和NLog实现日志记录,Serilog支持结构化日志和多种输出,适用于微服务;NLog配置灵活、性能高,适合企业应用,两者均通过ILogger接口集成。

日志记录(Logging)在C#开发中是用于跟踪应用程序运行状态、捕获错误信息和调试问题的重要手段。它帮助开发者了解程序执行流程,尤其是在生产环境中排查异常或性能瓶颈时非常关键。
.NET 提供了内置的 ILogger 接口和默认的日志提供程序(如 Console、Debug、EventLog 等),但第三方日志框架如 Serilog 和 NLog 功能更强大,支持结构化日志、多种输出目标(文件、数据库、网络服务等)以及灵活的配置方式。
集成 Serilog
Serilog 以结构化日志著称,适合将日志写入 JSON 格式并对接 ELK、Seq 等分析平台。
1. 安装 NuGet 包在项目中安装以下包:
- Serilog.AspNetCore(用于 ASP.NET Core 集成)
- Serilog.Sinks.Console(控制台输出)
- Serilog.Sinks.File(文件输出)
dotnet add package Serilog.AspNetCore dotnet add package Serilog.Sinks.Console dotnet add package Serilog.Sinks.File2. 配置 Serilog
在 Program.cs 中配置:
using Serilog;
var builder = WebApplication.CreateBuilder(args);
// 配置 Serilog
builder.Host.UseSerilog((context, services, configuration) => configuration
.WriteTo.Console()
.WriteTo.File("logs/log-.txt", rollingInterval: RollingInterval.Day)
.ReadFrom.Services(services)
.Enrich.FromLogContext());
var app = builder.Build();
app.Run();
3. 使用 ILogger在控制器或其他服务中注入 ILogger
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("访问了首页");
return View();
}
}
集成 NLog
NLog 是一个高性能、易于配置的日志框架,支持大量目标和规则过滤。
千鹿Pr助手
智能Pr插件,融入众多AI功能和海量素材
128
查看详情
1. 安装 NuGet 包安装以下包:
- NLog.Extensions.Logging
- NLog.Config(可通过模板生成 nlog.config)
dotnet add package NLog.Extensions.Logging dotnet add package2. 添加 nlog.config 配置文件NLog.Config
在项目根目录添加 nlog.config,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target xsi:type="File" name="fileTarget"
fileName="logs/${shortdate}.log"
layout="${longdate} ${level} ${message} ${exception}" />
<target xsi:type="Console" name="consoleTarget" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="fileTarget,consoleTarget" />
</rules>
</nlog>
确保设置该文件的“复制到输出目录”为“始终复制”。
3. 在 Program.cs 中启用 NLogusing NLog; using NLog.Web; var builder = WebApplication.CreateBuilder(args); // 添加 NLog builder.Host.UseNLog(); var app = builder.Build(); app.Run();4. 使用 ILogger
与 Serilog 一样,通过依赖注入使用标准 ILogger 接口写日志。
选择建议
Serilog 更适合需要结构化日志、集中式日志分析的场景,比如微服务架构中对接 Seq 或 Elasticsearch。
NLog 配置灵活、性能高,适合传统企业应用或对日志路由有复杂需求的项目。
两者都支持 .NET 的 Microsoft.Extensions.Logging 抽象层,因此可以无缝替换内置日志提供者。
基本上就这些。根据项目需求选一个,配置好后统一用 ILogger 写日志即可。以上就是C#的日志记录(Logging)是什么?如何集成Serilog或NLog?的详细内容,更多请关注其它相关文章!
# 操作指南
# 网站优化最好的解决办法
# 永宁短视频营销软文推广
# 云南产品seo推广招聘
# 直播间seo排名系统
# 湖北私域营销推广
# 新品seo软文推广
# 萝岗网站建设优化
# 海口牛肉饼团购网站推广
# 武清监控器材网站建设
# 谷歌seo电话
# 如何在
# 序列化
# 是在
# 是一个
# js
# 如何将
# 如何使用
# 可通过
# 结构化
# .net
# c#开发
# 性能瓶颈
# c#
# 配置文件
# microsoft
# 路由
# app
# json
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
CSS图片焦点样式实现教程:理解与应用tabindex属性
Lar*el递归关系中排除子孙节点的策略
深入理解Go语言中Map值与方法接收器的交互:为什么需要临时变量
俄罗斯Yandex免登录入口_Yandex搜索引擎官网一键直达
AO3最新镜像入口 Archive of Our Own官方平台访问
Python vgamepad库按键模拟:正确使用XUSB_BUTTON常量
高德地图总提示网络异常怎么办 高德地图离线导航设置与网络排查方法
树莓派传感器触发:通过Twilio API发送WhatsApp消息教程
AWS EC2实例间SQL Server连接超时:安全组配置与故障排除指南
苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】
谷歌邮箱网页版官方页面入口 谷歌邮箱网页端快速访问
Win10怎么制作U盘启动盘 Win10系统安装U盘制作教程【详解】
192.168.1.1管理中心入口 192.168.1.1路由器网页设置平台
品牌机怎么重装系统 联想/戴尔/惠普笔记本恢复出厂系统教程
QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台
C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用
Excel组合图表怎么做 Excel创建柱状图与折线组合图教程【图表】
2026春节假期票务安排_2026春节放假购票指南
如何使用Node.js csv 包按条件移除含空字段的CSV记录
J*aScript map 迭代中检测空数组元素的有效方法
三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升
自定义Bag-of-Words实现:处理带负号的词汇权重
Lar*el 递归关系中排除指定分支的教程
J*aScript:在map操作中高效处理空数组
Python模块化编程:有效管理依赖与避免循环引用
Golang如何优雅处理error_Golang error处理最佳实践总结
windows10怎么查看本机ip_windows10命令提示符ipconfig使用
HTML空白字符处理机制:渲染、DOM与编码实践
Node.js CSV 数据处理:基于字段空值条件过滤整条记录的策略
Golang如何测试channel通信行为_Golang channel通信测试与分析方法
如何在Python中使用Optional类型处理可变对象并避免Pylint警告
J*a应用程序首次运行自动创建文件与目录的最佳实践
汽水音乐在线版入口_汽水音乐网页播放手册
4399体育竞技小游戏_4399小游戏赛事入口
解决移动端滚动问题的overflow属性应用指南
qq游戏网页版直接玩_qq游戏免下载快速入口
Python:递归比较文件夹内容并找出特定类型文件的差异
Python自定义类排序:解决lambda键值访问TypeError的实践指南
sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程
葱吃多了会怎样 葱吃多了会伤胃吗
网易大神怎么保存别人动态的图片_网易大神动态图片保存方法
Lar*el头像管理:图片缩放与旧文件删除的最佳实践
J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题
jQuery Mask 插件中实现电话号码固定前导零的教程
Sublime怎么配置Nim语言环境_Sublime Nim代码高亮与补全
Go语言HTML解析:利用Goquery精准获取指定元素内容
CSS实现侧边栏导航项全宽圆角悬停背景效果
学习通网页版官方登录 超星学习通电脑端入口指南
Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】
飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】


2025-11-11
浏览次数:次
返回列表
NLog.Config