我在我的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.File
或Serilog.Sinks.Elasticsearch
支持的接收器进行日志记录。您可以使用这些汇来记录日志,然后使用Log Shipping
在Seq
中使用这些日志。