如何在代码中将 Azure 存储连接字符串传递给 Serilog,同时从 appSettings.json 读取其他设置?

问题描述 投票:0回答:1

我的 appsettings.json 看起来像这样:

"Serilog": {
    "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.AzureBlobStorage" ],
    "MinimumLevel": {
        "Default": "Verbose"
    },
    "WriteTo": [
        {
            "Name": "Console"
        },
        {
            "Name": "AzureBlobStorage",
            "Args": {
                "storageContainerName": "applogs",
                "storageFileName": "{yyyy}/{MM}/{dd}/log.txt",
                "writeInBatches": "true",
                "period": "0.00:00:15",
                "batchPostingLimit": "10"
            }
        }
    ]
}

我没有上面提到的连接字符串,但我希望在创建 LoggerConfiguration 时将其注入代码中,就像这样

Log.Logger = new LoggerConfiguration()
            .ReadFrom.Configuration(builder.Configuration)
            *<-- set the azure blob storage connection string here -->*
            .CreateLogger();

有没有办法做到这一点?

serilog appsettings serilog-sinks-azureblobstorage
1个回答
0
投票

我通过在上面创建 LoggerConfiguration 之前添加这行代码解决了这个问题:

builder.Configuration["Serilog:WriteTo:1:Args:connectionString"] = "connection string"
© www.soinside.com 2019 - 2024. All rights reserved.