我已经在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
。
点击“切换输出”按钮不会加载日志。它无限期地挂在“正在加载” 状态。
如何查看Azure函数的日志输出?
答案 0 :(得分:1)
对于运行时2.x中的v2功能,doc解释
为改善监视效果,门户网站中使用
AzureWebJobsDashboard
设置的WebJobs仪表板已替换为使用APPINSIGHTS_INSTRUMENTATIONKEY
设置的Azure Application Insights。
与您所看到的一样,使用AzureWebJobsDashboard设置,日志参数为null,并且那里没有日志。恐怕已替换为,并且仪表板已弃用。
创建Application Insight并将其instrumentationkey
添加到Application设置后,我们可以看到Monitor视图类似于Dashboard。
如果我们还是不喜欢它,则可以在其中登录kudu(https://<functionAppName>.scm.azurewebsites.net/DebugConsole
)(D:\home\LogFiles\Application\Functions\function\<functoinName>
)。