【发布时间】:2019-01-29 02:27:21
【问题描述】:
我将 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 上看到每个日志两次,它们的时间戳相差几毫秒。我尝试了here 提供的解决方案,以防万一他们可能会有所帮助,但没有运气。
【问题讨论】:
-
你是怎么解决这个问题的?
-
可能有点晚了。但是您是否还在 appsettings.json 中配置了 serilog 日志记录?如果是这样,它将从代码和日志记录中记录。我遇到了一些问题!
-
乔迪的回答应该是答案
-
@JordyvanEijk 你找到解决办法了吗?我使用 SerilogRequestLogging,如果我的控制器中有异常,它会被记录两次。
-
@jmazur 你还有这个问题吗?也许你在控制器中记录你的异常并重新抛出它,它会被你的应用程序本身捕获?
标签: asp.net-core-2.0 serilog kibana-6