Azure Functions日志始终为空

时间:2019-03-03 22:39:01

标签: azure logging azure-functions

我已经在Visual Studio 2017中创建了一个针对.NET Core的Azure函数应用程序。我使用的是由Azure Functions项目模板自动生成的简单 Hello {name} 示例。

public static class Function1
{
    [FunctionName("Function1")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
        log.LogDebug("A debug message");

        string name = req.Query["name"];

        string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
        dynamic data = JsonConvert.DeserializeObject(requestBody);
        name = name ?? data?.name;

        return name != null
            ? (ActionResult)new OkObjectResult($"Hello, {name}")
            : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
    }
}

当我将其部署到Azure时,运行该函数,然后在Kudu中查看“调用详细信息”,日志中的值始终为null

Kudu Invocation Details

点击“切换输出”按钮不会加载日志。它无限期地挂在“正在加载” 状态。

如何查看Azure函数的日志输出?

1 个答案:

答案 0 :(得分:1)

对于运行时2.x​​中的v2功能,doc解释

  

为改善监视效果,门户网站中使用AzureWebJobsDashboard设置的WebJobs仪表板已替换为使用APPINSIGHTS_INSTRUMENTATIONKEY设置的Azure Application Insights。

与您所看到的一样,使用AzureWebJobsDashboard设置,日志参数为null,并且那里没有日志。恐怕已替换为,并且仪表板已弃用

创建Application Insight并将其instrumentationkey添加到Application设置后,我们可以看到Monitor视图类似于Dashboard。

enter image description here

如果我们还是不喜欢它,则可以在其中登录kudu(https://<functionAppName>.scm.azurewebsites.net/DebugConsole)(D:\home\LogFiles\Application\Functions\function\<functoinName>)。