gpt4 book ai didi

使用 appsettings.json 时 Azure 函数无法初始化 Serilog Sink

转载 作者:行者123 更新时间:2023-12-02 10:32:41 28 4
gpt4 key购买 nike

我创建了一个简单的 Azure 函数,旨在使用 Serililog 记录到 Azure Blob 存储。

当对 Serilog 接收器使用内联配置时,效果非常好,创建了接收器并且 Serilog 愉快地写入了 Blob 存储。

这有效:

Log.Logger = new LoggerConfiguration()
.WriteTo.AzureBlobStorage(
"STORAGEACCOUNT CONNECTION STRING", // <-- inline config
LogEventLevel.Information,
null,
"{yyyy}/{MM}/{dd}/MyLogFile.txt")
.CreateLogger();

enter image description here

问题是我想通过appsettings.json配置这一切,但是当我尝试这个(在模拟器和云中本地运行)时,它无法绑定(bind)接收器设置,因此无法登录博客存储。

如果我进行调试,我可以看到配置值正在按预期加载到配置对象中,但它们没有应用于日志记录配置。

这不起作用:

Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
此代码段中的

appsettings.json:

{

"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Information"
}
},
"WriteTo": [{
"Name": "AzureBlobStorage",
"Args": {
"connectionString": " --- REPLACE WITH STORAGEACCOUNT BLOB CONNECTION STRING --- ",
"formatter": "Serilog.Formatting.Compact.RenderedCompactJsonFormatter, Serilog.Formatting.Compact",
"storageFileName": "{yyyy}/{MM}/{dd}/MyLogFile.txt",
"retainedFileCountLimit": 31
}
}

],
"Properties": {
"Application": "int-test-logging",
"Environment": "int"
}
}

}

enter image description here

我不确定我做错了什么,但任何帮助将不胜感激。以下 github 存储库包含实现上述内容的代码(两种方法),并重现了此行为。 https://github.com/oneiltomlinson/AzureFunctionsLogging

最佳答案

只需添加

    "Using": [ "Serilog.Sinks.AzureBlobStorage" ] //under Serilog Config

它会起作用的!

工作配置

{
"Serilog": {
"Using": [
"Serilog.Sinks.AzureBlobStorage"
],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Information"
}
},
"WriteTo": [
{
"Name": "AzureBlobStorage",
"Args": {
"connectionString": " --- REPLACE WITH STORAGEACCOUNT BLOB CONNECTION STRING --- ",
"formatter": "Serilog.Formatting.Compact.RenderedCompactJsonFormatter, Serilog.Formatting.Compact",
"storageFileName": "{yyyy}/{MM}/{dd}/MyLogFile.txt",
"retainedFileCountLimit": 31
}
}
],
"Properties": {
"Application": "int-test-logging",
"Environment": "int"
}
}
}

关于使用 appsettings.json 时 Azure 函数无法初始化 Serilog Sink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55023824/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com