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

Serilog日志中EventId输出为JSON对象,如何仅输出Id值?

解决方案:无需自定义Enricher,用原生配置即可实现

当前{EventId}输出成{ Id: 101 }格式,是因为通过LoggerMessage.Define生成的日志事件里,EventId是一个EventId结构体,默认输出时会调用它的ToString()方法。要直接输出Id数值,只需修改日志输出模板:

修改配置中的输出模板

把配置里WriteTo.File.Args下的outputTemplate字段中,{EventId}替换为{EventId.Id}:

"outputTemplate": "{Timestamp:u};{host_ip};{enviroment_hostname};{EventId.Id};{EventCategory};{EventSeverity};{Message:lj};{UserId};{ResourceType};{ResourceId}"

修改后,日志里的EventId部分就会直接输出纯数值(比如101),完全满足需求。

如果后续需要全局统一处理EventId的输出格式,也可以配置Serilog的属性转换器,但当前场景下直接修改输出模板是最简洁的原生解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:20:30