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

如何在ASP.NET Core 8 Web应用中配置Elastic.Serilog.Sinks 8.11?

从Serilog.Sinks.Elasticsearch迁移到Elastic.Serilog.Sinks的配置

以下是与你旧版配置功能完全对齐的新版Elastic.Serilog.Sinks 8.11配置代码:

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Information()
    .Enrich.FromLogContext()
    .WriteTo.Console(Serilog.Events.LogEventLevel.Information)
    .WriteTo.Elasticsearch([new Uri(Configuration["ElasticPath"])], opts =>
    {
        // 配置Elasticsearch基础认证
        opts.ClientSettings = new ElasticsearchClientSettings(opts.NodeUris.First())
            .BasicAuthentication("username", "password");

        // 沿用旧版的按月滚动索引命名规则
        opts.IndexFormat = $"projectx-{Configuration["Environment"]}-{DateTime.UtcNow:yyyy-MM}";
        // 禁用默认的数据流模式,使用普通索引(与旧版行为一致)
        opts.DataStream = null;

        // 自动注册索引模板,替代旧版AutoRegisterTemplate相关配置
        opts.BootstrapMethod = Elastic.Ingest.Elasticsearch.BootstrapMethod.IndexTemplate;
        opts.IndexTemplateName = "projectx-log-template";
        opts.IndexTemplatePatterns = new[] { $"projectx-{Configuration["Environment"]}-*" };

        // 设置批量操作类型为Create,与旧版BatchAction一致
        opts.BatchAction = Elastic.Ingest.Elasticsearch.BatchAction.Create;

        // 配置失败回调与处理策略
        opts.FailureCallback = (e, ex) => Console.WriteLine($"无法提交日志事件:{e.MessageTemplate}");
        opts.EmitEventFailure = Elastic.Ingest.Elasticsearch.EmitEventFailureHandling.WriteToSelfLog |
                                Elastic.Ingest.Elasticsearch.EmitEventFailureHandling.RaiseCallback;
    })
    .CreateLogger();

关键配置项对应说明

  • 基础认证:旧版通过ModifyConnectionSettings注入认证逻辑,新版直接通过opts.ClientSettings构建带认证的客户端配置。
  • 索引命名:新版保留了IndexFormat属性,但默认启用数据流模式,若要沿用旧版普通索引,需显式将DataStream设为null。
  • 索引模板注册:旧版AutoRegisterTemplate和AutoRegisterTemplateVersion对应新版的BootstrapMethod = IndexTemplate,同时需指定模板名称和匹配的索引前缀。
  • 批量操作:旧版ElasticOpType.Create对应新版BatchAction.Create,确保日志以创建而非更新的方式写入。
  • 失败处理:FailureCallback直接沿用旧版逻辑;EmitEventFailure枚举值迁移到Elastic.Ingest.Elasticsearch命名空间下,功能与旧版完全一致。
  • 类型名称:新版无需设置TypeName,因Elasticsearch 7+已废弃文档类型概念,默认不包含类型字段。

内容的提问来源于stack exchange,提问作者Ömer Faruk Mızıkacı

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:24:51