azure-functions - 如何从 azure app 设置或 azure function app 文件中使用 Serilog 配置?
问题描述
我正在尝试将 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 门户中的应用程序设置或local.settings.json
仅接受Dictionary<string, string>
格式的值。如果您在 中使用多个级别的设置local.settings.json
,它将忽略整个“值”部分。它应该是这样的
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "",
"FUNCTIONS_WORKER_RUNTIME": "node",
"key1":"value1"
}
}
在 Azure 门户中,也只有键值格式。
可以通过这种方式在环境变量中获取这些设置
Environment.GetEnvironmentVariable("key")
所以解决方法是
1.你读取并解析json文件。
2.use : to nest:keys:down
参考:
推荐阅读
- html - 如何将元素对齐到中心?
- rest - Algolia Places REST API - 在整个星球上搜索半径和后备
- python - 如何在 Python 中生成在两个边界之间形成正态分布的样本数据?
- javascript - 在我的 nodeJS 应用程序中展平树上的空组
- javascript - 如何在javascript中每3秒一张一张地更改图像(滑块)?
- php - 从 api 响应中保存数组中的对象
- c++ - 如何在函数中使用非参数变量?
- javascript - 未捕获的类型错误:无法读取 null 的属性“removeChild”
- redis - 通过 CLI 重置 REDIS db?
- html - 单击复选框时,如何将所有先前的复选框设置为在角度 4 中选中