如何查看Azure Function App中_logger.LogInformation输出的日志
Azure Function 自定义日志不显示问题解决方法
这个问题与日志级别配置直接相关,默认项目模板未对自定义日志分类配置正确的输出规则,导致_logger.LogInformation写入的内容被运行时过滤。
核心修复步骤
- 修改项目中的
host.json配置
找到项目根目录下的host.json文件,替换日志相关配置为如下内容,确保默认日志级别设置为Information:
{ "version": "2.0", "logging": { "logLevel": { "default": "Information", "Host.Results": "Error", "Function": "Information", "Host.Aggregator": "Trace" }, "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes": "Request" } } } }
配置说明:
default字段控制所有未单独指定分类的日志输出规则,代码中通过ILogger<someTrigger>写入的自定义日志默认走该规则,设置为Information后就不会被过滤你之前能看到的执行开始/结束、触发器详情类日志属于
Function、Host系统分类,模板默认就给这些分类开了Information级别的输出权限,所以不受默认配置影响检查Azure门户侧配置
文件修改完成重新发布应用后,如果还是看不到日志,进入Function App资源页做如下检查:- 打开「配置」-「应用程序设置」面板
- 查找名为
AzureFunctionsJobHost__logging__logLevel__default的配置项,如果该项存在且值为Warning/Error/Critical,修改为Information后保存 - 等待应用重启完成后,再触发函数测试流日志输出
常见注意事项
LogDebug、LogTrace级别的日志默认不会在门户流日志中输出,日常排查问题请使用LogInformation及以上级别- 如果开启了Application Insights,排查阶段可以临时关闭采样配置,避免日志被采样规则丢弃
- 本地修改的
host.json必须随项目一起发布到Azure,否则线上运行的还是旧配置,不会生效
内容的提问来源于stack exchange,提问作者John Little
相关产品推荐
相关产品推荐

