我使用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" />
一切看起来都没问题,但是在elasticsearch中没有日志。
Serilog.Sinks.Elasticsearch
9.x 支持 elastic stack 8.*。 更多信息请访问网站: https://github.com/serilog-contrib/serilog-sinks-elasticsearch - undefined