【问题标题】:How to use Serilog configuration from azure app setting or a file for azure function app?如何从 azure app 设置或 azure function app 文件中使用 Serilog 配置?
【发布时间】:2020-06-05 09:16:20
【问题描述】:

我正在尝试将 serilog 添加到我的 azure 函数应用程序中。但我无法从 local.settings.json 读取 serilog 配置,也找不到获取 serilog 配置 azure 应用程序设置的方法。

我喜欢从配置中读取设置,因为我的 serilog 设置是特定于环境/平台的。

我在我的 startup.cs 中添加了以下代码

    var config = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("local.settings.json", true, true)
        .AddEnvironmentVariables()
        .Build();

var logger = new LoggerConfiguration()
               .ReadFrom.Configuration(config)
               .CreateLogger();

在 local.settings.json 我有 serilog 配置详细信息。

"Serilog": {
    "MinimumLevel": {
      "Default": "Verbose"
    },
    "WriteTo": [
      {
        "Name": "Seq",
        "Args": { "serverUrl": "http://DEV01:5341" }
      },
      {
        "Name": "Logentries",
        "Args": { "Token": "ABCDXYZ" }
      },
      {
        "Name": "Console"
      }
    ]
  }

谢谢。

【问题讨论】:

    标签: azure-functions serilog


    【解决方案1】:

    Azure 门户中的应用程序设置或local.settings.json 中的值仅接受Dictionary<string, string> 格式。如果您在local.settings.json 中使用多个级别的设置,它将忽略整个“值”部分。应该是这样的

    {
      "IsEncrypted": false,
      "Values": {
        "AzureWebJobsStorage": "",
        "FUNCTIONS_WORKER_RUNTIME": "node",
        "key1":"value1"
      }
    }
    

    在 Azure 门户中,也只有键值格式。

    您可以在this way的环境变量中获取这些设置

    Environment.GetEnvironmentVariable("key")
    

    所以解决方法是

    1.你读取并解析json文件。

    2.use : to nest:keys:down

    参考:

    Azure Function Read local.settings.json to object

    azure application settings - how to add nested item

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2023-03-19
      • 2022-08-18
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多