Azure Functions中如何隐藏非自定义日志,仅查看Python日志?
过滤Azure Functions日志流中的系统日志,专注自定义日志
一、直接在日志流中用查询过滤
Azure日志流支持Kusto查询语法,可快速筛选出你的自定义日志:
- 若使用Python默认的
logging.info(),日志默认归到Function类别,用以下查询:
traces | where Category == "Function" | order by timestamp desc
- 若自定义了日志类别,替换
Category值为你的类别名称即可。
二、通过host.json配置限制系统日志输出
修改项目根目录的host.json,调整日志级别与类别过滤规则:
- 针对Durable Functions的系统日志,单独提升其日志级别,减少Info级输出:
{ "logging": { "logLevel": { "DurableTask.AzureStorage": "Warning", "DurableTask.Core": "Warning" }, "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes": "Request" } } } }
- 若只想保留自身Function日志,可设置更严格的规则:
{ "logging": { "logLevel": { "default": "None", "Function": "Information" } } }
注意:default设为None会关闭所有未明确配置的类别日志,若需保留其他系统日志,需单独指定对应类别的日志级别。
三、自定义Python日志类别(精准区分)
在代码中给日志指定专属类别,方便后续过滤:
import logging import azure.functions as func # 创建自定义类别日志器 logger = logging.getLogger("MyAppLogs") def main(req: func.HttpRequest) -> func.HttpResponse: logger.info("这是我的业务调试日志") return func.HttpResponse("处理完成")
之后在host.json中仅开启该类别的Info级日志,同时在日志流查询中用Category == "MyAppLogs"过滤。
补充:关于系统日志的说明
你看到的TaskActiviyDispatcher、linuxfunction1-control类日志是Durable Functions的内部运行日志,用于记录任务调度、租赁管理等流程。正常运行时这些Info级日志无影响,仅调试时会干扰视线;若Durable Functions出现异常,再开启这类日志排查即可。
内容的提问来源于stack exchange,提问作者Solomon Shubaev
相关产品推荐
相关产品推荐

