Moh*_*ati 3 c# elasticsearch serilog asp.net-core
我使用ELK堆栈来记录应用程序错误,但Serilog不会记录到elasticsearch。
\n使用的elasticsearch版本是8.3.2。
\n日志配置program.cs:
builder.UseSerilog((hostBuilder, serviceProvider, loggerConfiguration) =>\n{\n var appSettings = hostBuilder.Configuration.GetSection(nameof(AppSettings)).Get<AppSettings>();\n\n CreateBasicLoggerConfiguration(loggerConfiguration)\n .WriteTo.File(logPath, rollingInterval: RollingInterval.Hour)\n .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(appSettings.ElasticsearchSettings.Uri))\n {\n IndexFormat = $"\xd9\x8eapp-logs-{environment.EnvironmentName.Replace(".","-")}-{DateTimeOffset.Now.LocalDateTime:yyyy-MM}",\n AutoRegisterTemplate = true\n });\n});\nRun Code Online (Sandbox Code Playgroud)\n并且,elasticsearch设置为appsettings.json:
"ElasticsearchSettings": {\n "Uri" : "http://localhost:9200"\n}\nRun Code Online (Sandbox Code Playgroud)\n添加并使用了以下软件包:
\n<PackageReference Include="Serilog.AspNetCore" Version="5.0.0" />\n<PackageReference Include="Serilog.Enrichers.ClientInfo" Version="1.1.4" />\n<PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" />\n<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="8.4.1" />\nRun Code Online (Sandbox Code Playgroud)\n一切看起来都正常,但是没有登录到elastichsearch。
\nMil*_*ard 10
这个问题是因为当前版本的Serilog.Sinks.Elasticsearchserilog接收器不支持elasticsearch版本8.*。
默认情况下,所以你需要一些更多的配置。我最近遇到了这个问题并写了一篇关于它的文章。我建议您阅读该文章并解决您的问题。
\n尝试以下配置:
\n.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(appSettings.ElasticsearchSettings.Uri))\n{\n IndexFormat = $"\xd9\x8eapp-logs-{environment.EnvironmentName.Replace(".","-")}-{DateTimeOffset.Now.LocalDateTime:yyyy-MM}",\n AutoRegisterTemplate = true,\n OverwriteTemplate = true,\n TemplateName = yourTemplateName,\n AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7,\n TypeName = null,\n BatchAction = ElasticOpType.Create\n});\nRun Code Online (Sandbox Code Playgroud)\n文章链接:如何将 Serilog 与 Elasticsearch 8 + Kibana 集成
\n| 归档时间: |
|
| 查看次数: |
4842 次 |
| 最近记录: |