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

如何通过appsettings.json配置Serilog的Elasticsearch Sink?

Serilog Elasticsearch Sink配置不生效问题排查

先纠正一个基础错误

你写的http://localhost:5601是Kibana的控制台端口,Elasticsearch服务的默认端口是9200。如果你的ES没改端口,这个地址本身就错了;如果确实改了端口,接着看配置不生效的原因。

配置不生效的常见原因及解决办法

1. 参数名写错了(最可能)

不同版本的Serilog.Sinks.Elasticsearch包,配置参数名不一样:

  • 新版本(v8及以上)用NodeUris(大写开头,复数形式),不是Uri
  • 旧版本可能用nodeUris或者serverUrl

把配置里的Uri换成对应参数名,比如:

"WriteTo": [
  {
    "Name": "Elasticsearch",
    "Args": {
      "NodeUris": "http://localhost:9200"
    }
  },
  {
    "Name": "Console"
  }
]

2. 代码里没加载配置文件

确保启动时正确读取appsettings.json并传给Serilog,少了下面这行就会忽略配置:

Log.Logger = new LoggerConfiguration()
    .ReadFrom.Configuration(configuration) // 必须加这行,从配置文件加载规则
    .CreateLogger();

3. 配置层级不对

Serilog的配置要放在appsettings.json的根节点Serilog下面,结构得是这样:

{
  "Serilog": {
    "MinimumLevel": "Information",
    "WriteTo": [
      // 你的输出配置
    ]
  }
}

要是把Serilog配置嵌套在其他节点里,肯定读不到。

4. 依赖包版本不兼容

老版本的Sink包配置参数和现在不一样,建议更新到最新稳定版,再对应调整配置参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:25:14