【发布时间】:2021-02-26 08:17:18
【问题描述】:
我正在尝试在 .NET Core 3.1 (C#) 项目中配置 Serilog,但我想在 appsettings.json 中完全做到这一点。对于 file sinks 我做了所有配置都没有任何问题,但对于 elasticsearch 我无法弄清楚如何将下面的行写入appsettings.json 以便它工作:
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("http://localhost:9200"))
{
FailureCallback = e => Console.WriteLine("Unable to submit event " + e.MessageTemplate),
EmitEventFailure = EmitEventFailureHandling.WriteToSelfLog |
EmitEventFailureHandling.WriteToFailureSink |
EmitEventFailureHandling.RaiseCallback,
FailureSink = new FileSink("./failures.txt", new JsonFormatter(), null)
})
Official documentation 仅显示EmitEventFailure 的基本示例,如下所示:
"emitEventFailure": "WriteToSelfLog"
它没有显示应该如何编写EmitEventFailures 的组合(多个标志)。 FailureSink 的情况相同:
"failureSink": "My.Namespace.MyFailureSink, My.Assembly.Name"
我不知道这到底是什么意思,也无法从上面列出的代码示例中弄清楚。
最后,对于FailureCallback,文档没有提到通过appsettings.json 执行此操作的任何选项。但是这个选项对我来说没什么大不了的,最坏的情况我可以省略它。
感谢任何提示!
【问题讨论】:
标签: elasticsearch .net-core configuration serilog