如何从azure应用程序设置或azure功能应用程序的文件中使用Serilog配置?

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

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

我喜欢从配置中读取设置,因为我的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个回答
0
投票

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

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

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

enter image description here

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

Environment.GetEnvironmentVariable("key")

所以解决方法是您阅读并解析json文件。

参考:

Azure Function Read local.settings.json to object

© www.soinside.com 2019 - 2024. All rights reserved.