I used ELK堆栈来记录应用程序错误,但是Serilog不登录弹性搜索.
使用的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
});
});
And, 弹性搜索设置在appsettings.json
:
"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 没有日志。