Azure functions 如何从azure应用程序设置或azure函数应用程序的文件中使用Serilog配置?
我正在尝试将serilog添加到我的azure函数应用程序中。但我无法从local.settings.json读取serilog配置,而且我也找不到获取serilog配置azure应用程序设置的方法 我喜欢从配置中读取设置,因为我的serilog设置是特定于环境/平台的。 我在startup.cs中添加了以下代码Azure functions 如何从azure应用程序设置或azure函数应用程序的文件中使用Serilog配置?,azure-functions,serilog,Azure Functions,Serilog,我正在尝试将serilog添加到我的azure函数应用程序中。但我无法从local.settings.json读取serilog配置,而且我也找不到获取serilog配置azure应用程序设置的方法 我喜欢从配置中读取设置,因为我的serilog设置是特定于环境/平台的。 我在startup.cs中添加了以下代码 var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCu
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.jsonI中有serilog配置详细信息
"Serilog": {
"MinimumLevel": {
"Default": "Verbose"
},
"WriteTo": [
{
"Name": "Seq",
"Args": { "serverUrl": "http://DEV01:5341" }
},
{
"Name": "Logentries",
"Args": { "Token": "ABCDXYZ" }
},
{
"Name": "Console"
}
]
}
谢谢。Azure portal中的应用程序设置或
local.settings.json中的值
仅接受字典
格式。如果在local.settings.json
中使用多个级别的设置,它将忽略整个“值”部分。应该是这样的
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"key1":"value1"
}
}
在Azure门户中,也只有键值格式
您可以在中的环境变量中获取这些设置
因此,解决办法是
1.读取并解析json文件
2.使用:嵌套:键:向下
参考:
Environment.GetEnvironmentVariable("key")