我正在通过用Azure Functions替换某些WebJob进行工作,除记录正在发生的事情外,其他所有工作似乎都可以正常进行。 我尝试使用VS2017中创建的默认函数,并在本地运行它没有问题。部署到Azure后,我无法在任何地方看到日志条目的详细信息。
使用Kudu查看日志似乎还可以,只是我注意到函数调用的日志参数始终为null。情况并非如此,因为该函数确实运行并提供了预期的输出,并且如果log实际上为空,则将失败。
该函数的外观如下:
public static class Function1
{
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
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");
}
}
我本来希望通过转到https://xxx.scm.azurewebsites.net/azurejobs/#/functions来查看Kudu中日志的输出,但是切换输出时我看不到详细信息-它从不加载(并且日志参数显示为null-也许正在由DI解决)。
尽管此功能只是测试,但我确实还有其他更复杂的功能,需要它们的日志记录详细信息。
我并不热衷于研究Application Insights,因为这种方式对于那些不会被大量使用的简单功能来说是过大的。
答案 0 :(得分:0)
对于运行时2.x中的v2功能,doc解释
使用AzureWebJobsDashboard设置的门户中的WebJobs仪表板将替换为使用APPINSIGHTS_INSTRUMENTATIONKEY设置的Azure Application Insights。
与您所看到的一样,使用AzureWebJobsDashboard设置,日志参数为null,并且那里没有日志。恐怕替换为已被执行且仪表板已被弃用。
关于应用程序见解的用法,我们可以利用基本的日志监视,而无需任何进一步的调查。创建它并将其Instrumentationkey添加到“应用程序设置”中后,我们可以看到Monitor视图类似于Dashboard。
如果我们仍然不喜欢它,可以在kudu(https://<functionAppName>.scm.azurewebsites.net/DebugConsole
)中登录(D:\home\LogFiles\Application\Functions\function\<functoinName>
)。