如何在Azure Application Insights中查看App Service自定义容器的应用日志?
一、排查操作错误的方向
- 首先确认你是否关闭了默认弹出的Queries模板窗口:Logs页面打开时默认会弹出预置查询模板库,你只需要点击窗口右上角的关闭按钮,就能看到完整的查询编辑界面和左侧的日志表列表。
- 确认你查询的日志表是否正确:App Service写入Application Insights的应用日志默认存储在
traces表,你可以直接在查询编辑区输入以下语句运行即可拉取全量日志:traces | order by timestamp desc - 检查时间范围配置是否匹配:Logs页面右上角默认时间范围通常为「过去24小时」,如果你的日志生成时间早于该范围,调整时间范围后重新运行查询即可,最长支持查询过去90天内的日志。
- 核对日志采集过滤规则:你可以回到App Service的「App Service日志」配置页,检查应用日志采集级别是否设置过高,比如仅采集Warning及以上级别日志,低于该级别的Info/Debug日志会被过滤不会上报。
- 确认自定义容器的日志输出路径:App Service默认仅采集容器输出到
stdout/stderr的日志,如果你将应用日志写入了容器内的自定义文件,需要额外配置采集规则才会上报到Application Insights。
二、Azure不默认提供全量日志直接查看入口的原因
- 性能限制:Application Insights面向生产级场景设计,单实例日均日志量可达数GB甚至TB级,默认直接加载全量日志会导致页面加载超时、响应卡顿,让用户主动指定查询条件可以大幅提升查询效率。
- 需求适配:不同用户的日志使用场景差异极大,有的需要按错误级别过滤、有的需要关联请求ID排查链路、有的需要做聚合统计,无差别的全量日志展示无法满足多样化的业务需求,灵活的KQL查询可以覆盖所有使用场景。
- 成本控制:Application Insights的查询费用按扫描的数据量计算,如果默认自动扫描全量日志,会产生很多无意义的费用支出,让用户主动限定查询范围和条件可以避免不必要的成本消耗。
内容的提问来源于stack exchange,提问作者Grigory
相关产品推荐
相关产品推荐

