7

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 上看到每条日志两次,它们的时间戳相差几毫秒。我尝试了此处提供的解决方案,以防万一他们可能会有所帮助,但没有运气。

4

1 回答 1

4

这可能是因为您在 appsettings.json 和代码内部配置 Serilog。这将记录所有内容两次。

于 2021-08-17T08:28:26.943 回答