有没有办法通过 appsettings.json 设置 Serilog 格式化程序变量?

Rob*_*ood 7 c# appsettings serilog .net-core

我有以下appsettings.json配置:

{
    "Serilog": {
        "Using": [],
        "MinimumLevel": {
            "Default": "Information",
            "Override": {
                "Microsoft": "Warning",
                "System": "Warning"
            }
        },
        "Enrich": [ "FromLogContext", "WithMachineName" ],
        "WriteTo": [
            {
                "Name": "File",
                "Args": {
                    "path": "C:\\Logs\\log.json",
                    "formatter": "Serilog.Formatting.Elasticsearch.ElasticsearchJsonFormatter, Serilog.Formatting.Elasticsearch"
                }
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试在上面的 appsettings.json 文件中配置的内容将在 C# 中表示为如下所示:

Log.Logger = new LoggerConfiguration()
    .ReadFrom.Configuration(configuration)
    .WriteTo.File(new ElasticsearchJsonFormatter(inlineFields:true, renderMessageTemplate: false), @"C:\logs\log.json")
    .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

我需要将“inlineFields”设置为 true,将“renderMessageTemplate”设置为 false,作为 ElasticsearchJsonFormatter 实例上的 appsettings.json 文件中的覆盖。有没有办法在 appsettings.json 文件中执行此操作,以便我可以将配置排除在 C# 之外?

xne*_*neg 4

我在 GitHub 上问了这个问题:https ://github.com/serilog/serilog-sinks-file/issues/138

决不 :(