如何阻止Azure Function向Application Insights过度输出日志?
解决Azure Functions Java中Worker管理类日志过多的问题
你遇到的问题是因为这些日志属于Azure Functions Host的细分组件类别,仅设置Host: "Warning"不会覆盖这些子类别默认的日志级别。以下是具体的解决方法:
修改host.json的日志配置
在logging.logLevel中添加Host组件的细分类别,将它们的日志级别设为Error或None,即可屏蔽这些无价值的Debug级日志:
{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle", "version": "[3.*, 4.0.0)" }, "extensions": { "http": { "routePrefix": "" }, "queues": { "maxPollingInterval": "00:00:10" } }, "logging": { "logLevel": { "default": "Warning", "Host": "Warning", "Host.Worker": "Error", "Host.Function.Executor": "Error", "Host.Triggers": "Error", "Function": "Warning", "Azure.Core": "Error" } } }
配置说明
Host.Worker: 控制Worker初始化、状态请求、终止等相关日志(对应你看到的"Worker initialized"、"WorkerStatusRequest completed"等条目)Host.Function.Executor: 控制函数执行的启动/结束日志(对应"Executed 'Functions.abc'..."条目)Host.Triggers: 控制触发器加载相关日志(对应"FunctionLoadRequest received..."条目)
如果需要彻底屏蔽这些组件的所有日志,可以将级别设为"None",但建议保留"Error"级别,以便在Worker出现异常时能捕获到关键日志。
额外排查
如果仍有其他冗余日志,可在Application Insights的日志详情中查看Category字段,找到对应的日志类别,然后在host.json的logLevel中添加该类别的级别配置即可。
内容的提问来源于stack exchange,提问作者Maciej
相关产品推荐
相关产品推荐

