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

如何在.NET7应用中通过appsettings.json配置Elastic.Serilog.Sinks库

在.NET7中通过appsettings.json配置Elastic.Serilog.Sinks对接Elastic Cloud

1. 安装必要的NuGet包

在项目根目录执行以下命令安装依赖:

dotnet add package Serilog.AspNetCore
dotnet add package Serilog.Sinks.Elasticsearch

2. 配置appsettings.json

将日志规则和Elastic Cloud连接信息写入appsettings.json,完整配置示例如下:

{
  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "Elasticsearch",
        "Args": {
          "nodeUris": "https://your-elastic-cloud-instance-endpoint:9243",
          "apiKey": "your-elastic-cloud-api-key",
          "indexFormat": "your-app-logs-{0:yyyy.MM.dd}",
          "autoRegisterTemplate": true,
          "numberOfShards": 1,
          "numberOfReplicas": 0
        }
      }
    ],
    "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]
  }
}

3. 在Program.cs中初始化Serilog

修改Program.cs,让应用读取配置并启用Serilog作为日志提供器:

var builder = WebApplication.CreateBuilder(args);

// 从配置文件加载Serilog配置
builder.Host.UseSerilog((context, configuration) =>
    configuration.ReadFrom.Configuration(context.Configuration));

// 其他服务注册逻辑...

var app = builder.Build();

// 中间件配置逻辑...

app.Run();

关键配置参数说明

  • nodeUris:Elastic Cloud实例的端点地址,可在Elastic Cloud控制台的部署详情页获取(格式示例:https://xxxxxx.es.us-west1.gcp.elastic-cloud.com:9243)。
  • apiKey:Elastic Cloud的API密钥,需在Elastic控制台创建具备日志写入权限的密钥(路径:Stack Management > API Keys > Create API key)。
  • indexFormat:日志索引的命名规则,示例中按日期拆分索引,便于后续日志的管理与查询。
  • autoRegisterTemplate:设为true时,会自动创建Elasticsearch索引模板,确保日志字段映射符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:42:11