我将Serilog
用于Elasticsearch接收器,其配置如下:
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上看到每个日志两次,但时间戳相差几毫秒。我尝试了here提供的解决方案,以防万一它们可能会有所帮助,但是没有运气。