在日常开发中,日志记录不仅是调试工具,更是系统运行状态的“眼睛”。然而,传统的文本日志难以分析和查询。今天,我们聊聊如何通过Serilog在.NET Core中实现结构化日志记录。
为何选择结构化日志?
结构化日志将日志从纯文本转换为键值对数据(如JSON),使日志能够被日志系统(如Elasticsearch)直接索引和查询,极大提升了故障排查和数据分析效率。
快速入门步骤:
安装NuGet包:Serilog.AspNetCore
在Program.cs中配置:
csharp
Log.Logger = new LoggerConfiguration()
.WriteTo.Console(new JsonFormatter())
.CreateLogger();
在代码中记录结构化日志:
csharp
_logger.Information("订单创建成功 {@Order}", order);
核心优势:
查询灵活:可通过订单号等字段直接检索
上下文丰富:自动记录线程ID、请求路径等信息
性能优秀:异步写入避免阻塞主线程
实用技巧:
使用@符号序列化对象
通过Enrichers添加自定义属性
结合Seq或ELK堆栈实现可视化
结构化日志不仅改变了我们查看日志的方式,更改变了我们分析系统行为的方式。尝试将其引入你的项目,你会发现运维效率的显著提升!