Azure 监控诊断设置 AppServiceConsoleLogs 未显示所有 console.log 行

Azure Monitoring Diagnostic Settings AppServiceConsoleLogs not showing all console.log lines

我们已经设置了 Azure 诊断设置(预览版)AppServiceConsoleLogs 来记录我们所有的 nodejs console.log() 行。这些都存储在 Log Analytics 工作区中并存档到我们的 Azure 存储帐户。

我注意到它确实从我们的 node.js 应用程序中捕获了许多 console.log() 行。然而,远非如此。它看起来是随机的——一些 console.log 行被捕获而其他行没有。我猜测它捕获了 nodejs 代码中大约 10-25% 的 console.log 行。

我在网上看到“Information”(或“Informational”)和“Detailed”是有区别的。事实上,在查询工具中,有一个“级别”列,在我的列中它只有“信息”行。 但是,我在我的设置中看不到可以选择“详细”的地方。

以下是我们如何使用屏幕截图进行设置...

在应用服务中,在“监控”和“诊断设置(预览)”下...

然后,点击“编辑设置”,我们...

然后,当我点击 DefaultWorkspace 中“搜索和分析日志”下的“查看日志”,然后点击 select“AppServiceConsoleLogs”时,我看到了这个屏幕,它清楚地显示了我们应用程序的一些 console.logs(例如顶部圈出的 - “从 orderH____ 获得订单”)。但与所有 console.log 相去甚远。同样圈出的是,级别是“信息”。当我单击过滤器时 select“不等于”“信息”,它什么也没显示。

如果我导出为 CSV 并查看它 - 当然是一样的。

我找不到任何地方告诉它我想记录“详细”而不是“信息”。

也许作为旁注,这是我们的监控应用程序服务日志屏幕 looks/is 设置的样子。 “应用程序日志记录”为“关闭”。我会打开它以尝试查看它是否有所作为,但由于它已经记录了我们的一些 console.logs,并且当我单击“文件系统”时,它没有显示任何关于“详细的”日志记录,除非我真的知道我在做什么,否则我宁愿不尝试它。

我终于弄明白了。

我确实需要将“应用程序日志记录”从“关闭”打开为“文件系统”(请参阅​​问题末尾的上方)。即使没有“信息”与“详细”设置(显然 Azure 摆脱了该设置,只是将其默认为“详细”??),它现在为我提供了非常详细的日志 - 我的所有 console.logs 还有更多!

然后我从“监控”下的边栏转到“诊断设置(预览)”。然后点击“defaultworkspace”link。然后单击“DefaultWorkspace”屏幕底部“搜索和分析日志”下的“查看日志”。

这会将您带到一个屏幕,其中包含许多您可以 运行 预定义的查询,或者您只需单击日志中的“x”和 运行 查询即可过去 24 小时,或您想要的任何时间范围!