Linux 消费计划的测试功能,仅记录 HTTP 请求标头:
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
log.LogInformation("Request headers:");
foreach (var header in req.Headers)
{
log.LogInformation($"{header.Key} : {header.Value}");
}
...
}
这是 Application Insights 日志流实时显示的内容:
2021-03-30T19:09:19Z [Information] C# HTTP trigger function processed a request.
2021-03-30T19:09:19Z [Information] Request headers:
如您所见,它显示了“Request headers:”条目,但未显示 foreach
循环中记录的条目。
但是,如果我查看应用洞察中的实际日志,它们确实包含记录的标头条目。
但是“日志流”的目的是为了方便调试,近乎实时地显示这些东西。实际的事务日志可能会滞后几分钟。
此外,有时日志确实会显示在日志流中(随机),但通常不会。此功能甚至尚未投入生产,因此几乎没有流量。
这只是日志流的性能限制吗?有没有更好的方法来解决这个问题?我知道我可以在本地调试函数,但真正的请求必须命中真正的函数。另外因为我更喜欢 Linux 消费计划,所以“文件系统”日志流不可用。