C# WebJob没有写入日志

C# WebJob没有写入日志,c#,azure,.net-core,azure-storage,azure-webjobs,C#,Azure,.net Core,Azure Storage,Azure Webjobs,为了让我的WebJob写入存储日志,我还需要在此处执行其他操作吗?一定是少了什么,但我不确定可能是什么 文档含糊不清,仅表明 ProcessQueueMessage函数位于名为StorageQueueProcessor的类中,该方法成功处理添加到存储队列的新项。AzureWebJobsDashboard正在使用相同的日志存储队列,但没有写入任何日志 appSettings.json中定义了以下连接字符串,它们是正确的: "ConnectionStrings": { "Storage"

为了让我的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();
            }

        }

您需要安装2.2.5版的软件包。然后在Main method->ConfigureLogging中,添加
b.AddAzureWebAppDiagnostics()

示例代码:

主要方法:

        //other code

        var builder = new HostBuilder()
        .ConfigureWebJobs(b =>
        {
            b.AddAzureStorageCoreServices();
            b.AddAzureStorage();
        })
        .ConfigureAppConfiguration(b =>
        {

        }
        )
        .ConfigureLogging((context, b) =>
        {
            b.SetMinimumLevel(LogLevel.Debug);
            b.AddConsole();

            //add this line of code.
            b.AddAzureWebAppDiagnostics();
        })                
        .UseConsoleLifetime();

         //other code
在Function.cs中:

        public static void ProcessQueueMessage([QueueTrigger("myqueue1", Connection = "AzureWebJobsStorage")]CloudQueueMessage message, ILogger log)
        {
            log.LogInformation("hello, can you see me?");
            log.LogInformation("Log test message:" + DateTime.Now.ToLongDateString());
            log.LogInformation("the queue message is: " + message.AsString);
        }
然后导航到azure门户->web应用程序服务(webjob发布到)->在左侧窗格中,单击“应用程序服务日志”->启用“应用程序日志记录(Blob)”并配置其他设置,如日志级别、Blob存储。截图如下:

将webjob发布到web应用程序后,运行webjob,您可以在kudu网站中查看日志信息:

最后,导航到您在上述步骤中配置的blob容器,您可以在那里看到日志:


您好,根据下面的答案,是否有关于此问题的更新?我将很快验证。谢谢。关于这个问题有什么最新消息吗?
        public static void ProcessQueueMessage([QueueTrigger("myqueue1", Connection = "AzureWebJobsStorage")]CloudQueueMessage message, ILogger log)
        {
            log.LogInformation("hello, can you see me?");
            log.LogInformation("Log test message:" + DateTime.Now.ToLongDateString());
            log.LogInformation("the queue message is: " + message.AsString);
        }