小编One*_*eil的帖子

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

我创建了一个简单的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

azure serilog azure-functions

6
推荐指数
1
解决办法
744
查看次数

检查逻辑应用 HTTP 请求中是否存在查询字符串

如何检查逻辑应用 HTTP 请求中是否存在查询字符串?我知道如何获取该值(如果存在),triggerOutputs()['queries']['name']但不确定如何检查其 null 作为参数是否可选

parameters azure azure-logic-apps

2
推荐指数
1
解决办法
2229
查看次数

通过Mule Java组件调用Java方法

在Mule Anypoint-studio中使用Java组件调用类时,如何指定函数/方法的名称?

java mule anypoint-studio

1
推荐指数
1
解决办法
1758
查看次数

适用于ServiceBusTrigger的appsettings.json中表示的Azure函数local.settings.json

我目前使用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)

c# azure azureservicebus azure-functions

1
推荐指数
1
解决办法
4208
查看次数