Azure Functions独立工作者能否将运行时日志输出到控制台?
.NET 6 Azure Functions独立工作者显示Executing/Executed日志到控制台的解决方案
可以实现,按以下步骤调整配置即可:
修改host.json配置
重点要指定Worker相关命名空间的日志级别,并关闭控制台日志级别过滤,确保低级别日志能输出:{ "logging": { "logLevel": { "default": "Information", "Microsoft.Azure.Functions.Worker": "Information", "Microsoft.Azure.Functions.Worker.Extensions.Http": "Information" }, "console": { "isEnabled": true, "enableConsoleLogLevelFilter": false }, "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes": "Request" } } } }这里
Microsoft.Azure.Functions.Worker就是Executing/Executed日志所属的类别,必须单独设置级别为Information。检查Program.cs的日志配置
确保独立工作者的主机配置中没有移除控制台日志提供者,默认ConfigureFunctionsWorkerDefaults会自动添加,但如果手动配置了日志服务,要明确包含控制台:var host = new HostBuilder() .ConfigureFunctionsWorkerDefaults(builder => { builder.Services.AddLogging(logging => { logging.AddConsole(); // 不要添加会过滤Information级别的规则 }); }) .Build(); host.Run();验证local.settings.json
如果之前在local.settings.json里设置过日志级别,确保Worker类别的级别正确:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "AzureFunctionsJobHost__logging__logLevel__Microsoft.Azure.Functions.Worker": "Information" } }这个配置会覆盖host.json的对应项,所以如果这里设成了Warning或更低,就会看不到日志。
完成以上调整后,重启独立工作者应用,就能在控制台看到带info:前缀的Executing、Executed这类运行时日志了。
内容的提问来源于stack exchange,提问作者mathro
相关产品推荐
相关产品推荐

