C#如何进行日志记录 C#使用Serilog或NLog配置日志框架


Serilog和NLog是C#中常用日志框架,Serilog支持结构化日志和多种输出,适合现代日志系统集成;NLog通过XML配置灵活管理日志规则,性能优秀。两者均需正确配置输出目标、滚动策略并防止敏感信息泄露,选择取决于团队习惯与运维需求。

c#如何进行日志记录 c#使用serilog或nlog配置日志框架

在C#开发中,良好的日志记录是排查问题、监控系统运行状态的重要手段。Serilog 和 NLog 是两个广泛使用的第三方日志框架,它们功能强大、配置灵活,支持多种输出目标(如控制台、文件、数据库、远程服务等)。下面介绍如何在 C# 项目中使用 Serilog 或 NLog 进行日志记录。

Serilog 的基本使用

Serilog 以结构化日志著称,特别适合与 Elasticsearch、Seq、Application Insights 等现代日志分析工具集成。

1. 安装 NuGet 包:

  • Serilog
  • Serilog.Sinks.Console
  • Serilog.Sinks.File

可以通过 NuGet 包管理器或命令行安装:

dotnet add package Serilog
dotnet add package Serilog.Sinks.Console
dotnet add package Serilog.Sinks.File

2. 配置并初始化 Logger:

Program.cs 或应用启动处配置:

using Serilog;

Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();

// 使用日志
Log.Information("应用程序启动");
Log.Warning("这是一个警告");
Log.Error("发生错误");

// 关闭并刷新日志(程序退出前)
Log.CloseAndFlush();

3. 在 ASP.NET Core 中集成:

替换默认日志提供者:

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog((context, services, configuration) => configuration
.WriteTo.Console()
.WriteTo.File("logs/app.log", rollingInterval: RollingInterval.Day))
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});

NLog 的基本使用

NLog 是另一个成熟稳定的日志框架,配置主要通过 XML 文件完成,灵活性高,性能优秀。

1. 安装 NuGet 包:

  • NLog
  • NLog.Extensions.Logging

2. 添加 nlog.config 配置文件:

Sitekick Sitekick

一个AI登陆页面自动构建器

Sitekick 121 查看详情 Sitekick

在项目根目录添加 nlog.config,设置“复制到输出目录”为“始终复制”:


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


layout="${longdate} ${level:uppercase=true} ${message} ${exception:format=tostring}" />
layout="${colored-literal:text=${level:uppercase=true}:color=DarkRed} ${message}" />






3. 在 ASP.NET Core 中启用 NLog:

修改 Program.cs

using NLog;
using NLog.Web;

var builder = WebApplication.CreateBuilder(args);

// 添加 NLog
builder.Host.UseNLog();

var app = builder.Build();

// 正常配置中间件...

4. 在代码中使用:

private readonly ILogger _logger;

public HomeController(ILogger logger)
{
_logger = logger;
}

_logger.LogInformation("用户访问首页");
_logger.LogError(ex, "处理请求时出错");

选择建议

如果追求结构化日志和与现代日志平台的集成(如 Seq、Elasticsearch),推荐使用 Serilog。它的 API 清晰,链式配置直观。

如果偏好基于配置文件的管理方式,或者需要更细粒度的路由规则、条件写入等高级功能,NLog 更加合适,且对性能影响极小。

基本上就这些,两种框架都能很好地满足 C# 项目的日志需求,选择哪一个更多取决于团队习惯和运维体系。不复杂但容易忽略的是正确关闭日志、设置滚动策略和避免敏感信息泄露。

以上就是C#如何进行日志记录 C#使用Serilog或NLog配置日志框架的详细内容,更多请关注其它相关文章!


# 很好  # 虫虫seo教程  # 大剧院网站建设  # 贺州本地seo营销公司  # 金鼎网站建设  # 福建网店关键词排名  # 靖歌阁网站内容优化  # 文昌网站推广方法  # 石柱低成本seo推广  # 海口网站建设与制作公司  # 网站的建设与维护步骤  # 推荐使用  # 两种  # 都能  # app  # 的是  # 面向对象  # 链式  # 更有  # 结构化  # red  # .net  # c#开发  # c#  # 配置文件  # 路由  # 工具 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: Go App Engine 项目结构与包管理深度指南  什么是Satis,如何用它搭建一个私有的composer仓库?  漫蛙漫画官方网站使用_漫蛙manwa网页版在线入口教程  Excel宏怎么删除_Excel中删除宏的详细操作流程  智云Q3和Q2有什么升级_智云Q3与Q2手持云台功能与性能对比分析  掌握Go App Engine项目结构与GOPATH:包管理与导入实践  漫蛙manwa官网浏览入口_漫蛙漫画网页版访问链接  MySQL多重JOIN技巧:高效关联同一表获取多角色信息  Go语言反射机制下访问嵌入结构体中的被遮蔽方法  DeepSeek超全面指南:入门必看  在PySimpleGUI中实现键盘按键绑定按钮事件  sublime如何撤销关闭的标签页_sublime重新打开已关闭文件技巧  个人所得税办理入口 个人所得税综合所得年度汇算入口  pubmed数据库官方主页_pubmed学术论文查找官网直达  《环球网校》设置报考省市方法  百度网盘如何设置上传限额  百度识图图像分析 百度识图识别平台  Python类装饰器动态修改方法时的类型提示:Mypy插件实现精确静态分析  192.168.1.1路由器后台入口 192.168.1.1默认登录入口  《虎扑》关闭社区内容推荐方法  消除网页顶部意外空白线:CSS布局常见问题与解决方案  WPS文字如何进行简繁转换  cad加载的线型看不见怎么办_cad线型不可见问题解决方法  海外搜索引擎推广效果怎么样,怎么分析效果!  12306夜间购票失败? | 查看官方公布的暂停服务公告与应对方案  酷狗音乐多音轨设置教程  qq音乐官方网站入口_qq音乐在线听歌网页版链接  《下一站江湖2》心法融合技巧  泰拉瑞亚网页版在线登录入口 泰拉瑞亚官方正版入口  Mac如何开启画中画模式_Mac Safari浏览器视频画中画功能  word文档行距怎么调?word文档调行距的操作步骤  圆通快递官方入口不需要登录 在线查询入口快速查询  C++怎么实现一个红黑树_C++高级数据结构与平衡二叉搜索树  优化Google Charts Gauge:在数据库无数据时显示默认值  抖音火山版如何进行提现  掌握产品代码正则表达式:避免常见陷阱与精确匹配  抖音手机分身两个账号怎么切换?分身两个系统是一样的吗?  抖音火山版注销账号抖音会注销吗 抖音火山版与抖音账号注销关系  使用VS Code调试Python代码:从入门到精通  虫虫助手如何更新游戏  铁拳8在线玩 铁拳8在线秒玩入口  驱动人生:游戏修复指南  c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化  风车动漫官网首页入口登录 风车动漫在线观看正版地址  Keras中Convolution2D层及其核心辅助层详解  Go Goroutine调度与并发执行深度解析  win11如何运行chkdsk命令 Win11检查和修复磁盘逻辑错误教程【修复】  太平年在哪个平台播出  花生壳内网映射新方案  Golang如何初始化module项目_Golang module init使用说明 

 2025-12-01

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.