gpt4 book ai didi

c# - Serilog 不向 Elasticsearch 8 发送日志

转载 作者:行者123 更新时间:2023-12-05 09:01:35 25 4
gpt4 key购买 nike

我使用 ELK 堆栈来记录应用程序错误,但 Serilog 不会记录到 elasticsearch

使用的elasticsearch版本是8.3.2

program.cs中的日志配置:

builder.UseSerilog((hostBuilder, serviceProvider, loggerConfiguration) =>
{
var appSettings = hostBuilder.Configuration.GetSection(nameof(AppSettings)).Get<AppSettings>();

CreateBasicLoggerConfiguration(loggerConfiguration)
.WriteTo.File(logPath, rollingInterval: RollingInterval.Hour)
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(appSettings.ElasticsearchSettings.Uri))
{
IndexFormat = $"َapp-logs-{environment.EnvironmentName.Replace(".","-")}-{DateTimeOffset.Now.LocalDateTime:yyyy-MM}",
AutoRegisterTemplate = true
});
});

并且,appsettings.json 中的 elasticsearch 设置:

"ElasticsearchSettings": {
"Uri" : "http://localhost:9200"
}

添加并使用了以下包:

<PackageReference Include="Serilog.AspNetCore" Version="5.0.0" />
<PackageReference Include="Serilog.Enrichers.ClientInfo" Version="1.1.4" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="8.4.1" />

一切正常,但 elastichsearch 没有登录。

最佳答案

这个问题是因为当前版本的Serilog.Sinks.Elasticsearch不支持serilog sink elasticsearch version 8.*.

默认情况下,所以你需要一些更多的配置。我最近遇到了这个问题并写了一篇关于它的文章。我建议阅读那篇文章并解决您的问题。

尝试以下配置:

.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(appSettings.ElasticsearchSettings.Uri))
{
IndexFormat = $"َapp-logs-{environment.EnvironmentName.Replace(".","-")}-{DateTimeOffset.Now.LocalDateTime:yyyy-MM}",
AutoRegisterTemplate = true,
OverwriteTemplate = true,
TemplateName = yourTemplateName,
AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7,
TypeName = null,
BatchAction = ElasticOpType.Create
});

文章链接:How to integrate Serilog with Elasticsearch 8 + Kibana

关于c# - Serilog 不向 Elasticsearch 8 发送日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73057258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com