如何为 Serilog.Sinks.Seq 设置 JsonSerializerOptions.DefaultIgnoreCondition

How does one set JsonSerializerOptions.DefaultIgnoreCondition for Serilog.Sinks.Seq

提问人:Louis S. Berman 提问时间:1/17/2023 更新时间:1/17/2023 访问量:166

问:

我在 C# 应用程序中使用 Serilog.Sinks.Seq(请参阅下面的配置代码),但我不知道如何将 JsonSerializerOptions.DefaultIgnoreCondition 设置为忽略 null。在这方面的任何帮助将不胜感激......

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();
C# 化序列 Serilog system.text.json

评论


答:

1赞 ShubhamWagh 1/17/2023 #1

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

可以使用其他接收器进行日志记录,这些接收器支持自定义序列化或 。可以使用这些接收器来记录日志,然后使用这些日志。Serilog.Sinks.FileSerilog.Sinks.ElasticsearchLog ShippingSeq

评论

0赞 Louis S. Berman 1/17/2023
我担心会是这样。值得庆幸的是,我的要求是一个不错的选择,但并不重要