我创建了一个简单的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();
Run Code Online (Sandbox Code Playgroud)
问题是我想通过配置所有这些appsettings.json,但是当我尝试这样做(都在仿真器和云中本地运行)时,它无法绑定接收器设置,结果其无法登录到博客存储。
如果调试,则可以看到配置值已按预期加载到configurationobject中,但是没有将它们应用于日志记录配置。
这不起作用:
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
appsettings.json 在此片段中:
Log.Logger = new LoggerConfiguration()
.WriteTo.AzureBlobStorage(
"STORAGEACCOUNT CONNECTION STRING", // <-- inline config
LogEventLevel.Information,
null,
"{yyyy}/{MM}/{dd}/MyLogFile.txt")
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
我不确定自己做错了什么,但会有所帮助。以下github存储库包含实现以上两种方法的代码,并重现了此行为。https://github.com/oneiltomlinson/AzureFunctionsLogging
如何检查逻辑应用 HTTP 请求中是否存在查询字符串?我知道如何获取该值(如果存在),triggerOutputs()['queries']['name']但不确定如何检查其 null 作为参数是否可选
在Mule Anypoint-studio中使用Java组件调用类时,如何指定函数/方法的名称?
我目前使用ServiceBusTrigger绑定具有azure函数
[ServiceBusTrigger("%TopicName%", "%SubscripionName%", Connection = "MyConnection")]
string catclogueEventMsgs, ILogger log, ExecutionContext context)
Run Code Online (Sandbox Code Playgroud)
使用此local.settings.json文件
"Values": {
…
"MyConnection": "Endpoint=sb://testxxxxxxxxxxxxxxxxxx
"SubscriptionName": "testsubscriptionName"
"TopicName": "testtopicName",
}
Run Code Online (Sandbox Code Playgroud)
我如何在appsettings.json文件中表示这一点。会像下面吗?
"Values": {
"MyConnection": "Endpoint=sb://testxxxxxxxxxxxxxxxxxx
"SubscriptionName": "testsubscriptionName"
"TopicName": "testtopicName",
}
Run Code Online (Sandbox Code Playgroud)
我可以使用“ MySubs”对象代替如下的“ Values”对象吗?
"MySubs": {
"MyConnection": "Endpoint=sb://testxxxxxxxxxxxxxxxxxx
"SubscriptionName": "testsubscriptionName"
"TopicName": "testtopicName",
}
Run Code Online (Sandbox Code Playgroud)
如果可以使用上面的设置,如何在ServiceBusTrigger绑定中表示呢?我会改成这个吗?
[ServiceBusTrigger("%MySubs.TopicName%", "%MySubs.SubscripionName%", Connection = "MySubs.MyConnection")]
string catclogueEventMsgs, ILogger log, ExecutionContext context)
Run Code Online (Sandbox Code Playgroud)