如何设置JsonSerializerOptions.serilog . sink . seq的defaultignrec



我在我的c#应用程序中使用serilog . ks. seq(见下面的配置代码),但我不知道如何设置JsonSerializerOptions。DefaultIgnoreCondition忽略空值。如能提供帮助,我将不胜感激。

using IHost host = Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) =>
{
services.AddHostedService<Worker>();
})
.UseSerilog((context, config) =>
{
var seqUri = new Uri(context.Configuration["SeqUri"]!);
var seqApiKey = context.Configuration["SeqApiKey"]!;
config.MinimumLevel.Debug()
.WriteTo.Seq(seqUri.AbsoluteUri, apiKey: seqApiKey);
})
.Build();
await host.RunAsync();

WriteTo.Seq不提供任何使用JsonSerializerOptions的方法。Seq服务器本身负责处理日志事件的序列化。它被设计用于处理结构化日志数据,因此它使用自己的序列化格式,这是为了优化而构建的。我不知道如何修改或覆盖它。

您可以使用其他提供自定义序列化Serilog.Sinks.FileSerilog.Sinks.Elasticsearch支持的接收器进行日志记录。您可以使用这些汇来记录日志,然后使用Log ShippingSeq中使用这些日志。