Есть ли что-то еще, что мне нужно сделать здесь, чтобы мой WebJob записал в журнал хранилища?Что-то должно быть не хватает, но я не уверен, что это может быть.
Документация нечеткая и указывает только на то, что
Функция ProcessQueueMessage находится в классе с именем StorageQueueProcessor и метод успешно обрабатывает новые элементы, добавленные в очередь хранения.AzureWebJobsDashboard использует ту же очередь хранения для журналов, но журналы не записываются.
Следующие строки подключения определены в appSettings.json и являются правильными:
"ConnectionStrings": {
"Storage": ""
"ServiceBus": ""
"AzureWebJobsStorage": ""
"AzureWebJobsDashboard": ""
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Information",
"System": "Warning",
"Microsoft": "Information"
},
"Console": {
"LogLevel": {
"Default": "Warning",
"System": "Information",
"Microsoft": "Information"
}
Вот код C #, который запускается при запуске:
static async Task MainAsync(string[] args)
{
Action<QueuesOptions> qOptions = delegate (QueuesOptions s)
{
s.MaxDequeueCount = 1;
};
var builder = new HostBuilder()
.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices()
.AddAzureStorage();
})
.ConfigureAppConfiguration(b =>
{
})
.ConfigureLogging((context, b) =>
{
b.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Debug);
b.AddConsole();
})
.UseConsoleLifetime();
var host = builder.Build();
using (host)
{
await host.RunAsync();
}
}
Здеськод для обработки элемента очереди хранилища и попытки записи в журналы хранилища Azure:
public static async Task ProcessQueueMessage([QueueTrigger("site-indexer")] CloudQueueMessage message, TextWriter log)
{
System.Console.Out.WriteLine($"Out");
System.Console.Error.WriteLine($"Error Test Line");
log.WriteLine($"Log Write Line");
}