我Serilog
与 Elasticsearch sink 一起使用,配置如下:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.MinimumLevel.Override("Microsoft", LogEventLevel.Verbose)
.Enrich.FromLogContext()
.Enrich.WithExceptionDetails()
.Enrich.WithProperty("Application", "abc")
.Enrich.WithProperty("Environment", env.EnvironmentName)
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(Configuration["LoggingEndpoint"]))
{
AutoRegisterTemplate = true,
CustomFormatter = new ExceptionAsObjectJsonFormatter(renderMessage: true) // Better formatting for exceptions
})
// 然后:
services.AddLogging(loggingBuilder =>
loggingBuilder.AddSerilog());
但是我可以在 Kibana 上看到每条日志两次,它们的时间戳相差几毫秒。我尝试了此处提供的解决方案,以防万一他们可能会有所帮助,但没有运气。