如何查看Python Azure Function中print语句的日志?
Azure Function Python print日志不显示在App Insights的解决办法
先确认App Insights的集成配置
得检查你的Function App有没有正确关联App Insights:- 进到Function App的配置页面,看看
APPINSIGHTS_INSTRUMENTATIONKEY或者APPLICATIONINSIGHTS_CONNECTION_STRING是不是已经正确设置,而且值是有效的。 - 本地开发的话,
local.settings.json里也得配上对应的连接字符串,格式参考:{ "Values": { "APPLICATIONINSIGHTS_CONNECTION_STRING": "你的App Insights连接字符串" } }
- 进到Function App的配置页面,看看
调整日志级别设置
Python版Azure Function默认的日志级别可能把print输出过滤掉了,得改下配置:- 在Function项目根目录建个
host.json,确保日志级别配置正确:{ "logging": { "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes": "Request" } }, "logLevel": { "default": "Information", "AzureFunctions": "Information" } } } - print的输出默认对应
Information级别,所以得保证default的级别不高于Information,不然会被过滤。
- 在Function项目根目录建个
换成logging模块代替print
Azure Function的Python运行时更认标准的logging模块,用这个输出日志比print靠谱多了,能确保被App Insights捕获:- 在函数代码里导入并配置logging:
import logging import azure.functions as func logger = logging.getLogger(__name__) def main(req: func.HttpRequest) -> func.HttpResponse: logger.info("这里是调试日志内容") # 用这个代替print # 你的业务逻辑:遍历Blob Storage、计算路径、调用Synapse Data Flow等 return func.HttpResponse("处理完成") - 用
logger.info()或者logger.debug()这些方法输出日志,直接就能被App Insights采集到。
- 在函数代码里导入并配置logging:
检查日志查询的方式
别在App Insights里瞎找,用正确的查询语句:- 进到App Insights的“日志”页面,用下面的Kusto查询找你的函数日志:
traces | where message contains "你日志里的关键词" | order by timestamp desc - 注意日志可能有延迟,等个1-2分钟再查,别刚输出就急着找。
- 进到App Insights的“日志”页面,用下面的Kusto查询找你的函数日志:
本地开发时的日志查看
本地跑Function的时候,print的输出会直接显示在终端,但要同步到App Insights的话,得确保local.settings.json配置正确,而且启动函数的时候没禁用App Insights集成。
内容的提问来源于stack exchange,提问作者Anuj
相关产品推荐
相关产品推荐

