如何彻底清除Azure Function中Web Storage的冗余日志?
彻底清除Azure Function冗余日志的配置方案
针对运行Azure Function时的大量冗余日志问题,可通过细化host.json和local.settings.json的日志配置来彻底过滤噪音,以下是具体调整方案:
1. 优化host.json日志配置
将日志级别进一步收紧,覆盖更多产生冗余的命名空间,同时同步Serilog的日志级别:
"logging": { "logLevel": { "default": "Error", "Microsoft": "Error", "System": "Error", "Host": "Error", "Host.Aggregator": "Error", "Function": "Error", "Microsoft.Azure.WebJobs": "Error", "Microsoft.Azure.WebJobs.Script": "Error", "Worker": "Error" }, "Serilog": { "MinimumLevel": "Error", "WriteTo": [ { "Name": "Console", "Args": { "outputTemplate": "{Timestamp:HH:mm:ss} {Level} | {RequestId} - {Message}{NewLine}{Exception}" } } ] }, "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes": "Request" } } }
关键调整说明:
- 将
default级别从Information改为Error,只保留错误级别的核心日志 - 新增
Microsoft.Azure.WebJobs、Microsoft.Azure.WebJobs.Script、Worker三个命名空间的Error级别设置,覆盖Function运行时和Worker进程的冗余日志 - 同步Serilog的
MinimumLevel为Error,避免Serilog输出高于Error级别的日志 - 若使用Application Insights,可通过
samplingSettings进一步过滤不必要的日志类型
2. 强化local.settings.json配置
补充更多易产生噪音的命名空间,确保本地运行时日志过滤生效:
"logging": { "logLevel": { "Microsoft.Azure.WebJobs.Script.WebHost.Middleware.SystemTraceMiddleware": "Error", "Worker.rpcWorkerProcess": "Error", "Microsoft.Azure.WebJobs.Script.Worker": "Error", "Microsoft.Azure.WebJobs.Script.Rpc": "Error" } }
关键调整说明:
- 新增
Microsoft.Azure.WebJobs.Script.Worker和Microsoft.Azure.WebJobs.Script.Rpc两个命名空间,过滤Worker进程与主进程通信的冗余日志
3. 额外排查点
- 若仍有冗余日志,检查Function代码中是否有自定义的
Information/Debug级别日志输出,需手动调整这些日志的级别 - 本地运行时,确保VS Code或Visual Studio的日志输出过滤器已设置为
Error级别(部分IDE会默认展示所有级别日志)
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

