Azure Functions host.json日志配置、日志流及Monitor模块相关疑问
你的host.json配置示例整理如下:
"logging": { // FILE CONFIG? "fileLoggingMode": "debugOnly", "logLevel": { "Function.MyFunction": "Information", "default": "None" }, // INSIGHTS CONFIG "applicationInsights": { "samplingSettings": { "isEnabled": true, "excludedTypes" : "Dependency;Event", "includedTypes" : "PageView;Trace" } } }
问题解答
Log Stream的输出由FILE CONFIG段控制,和INSIGHTS配置段无关。Log Stream展示的是函数运行时写入本地文件系统的日志,完全受
fileLoggingMode等文件相关配置约束;INSIGHTS段只负责管控上报到Application Insights服务的日志规则。
logLevel配置遵循「规则匹配越具体,优先级越高」的逻辑:
default是全局兜底规则,所有没有单独指定匹配规则的日志源,都遵循该级别限制Function开头的规则是专门匹配函数执行产生的日志,比如Function.MyFunction仅作用于名为MyFunction的函数的执行日志,优先级远高于default
你认为Filesystem日志由FILE CONFIG段控制的认知完全正确。如果需要开启云端环境的Log Stream,需要把fileLoggingMode的值改为always,默认的debugOnly仅在本地调试时才会写文件日志。
- Portal上的「Monitor」模块的日志直接从绑定的Application Insights拉取,由INSIGHTS配置段控制,和FILE CONFIG段没有关系。
如果要让Monitor模块仅展示错误级别的日志:
- 仅需限制MyFunction这一个函数的日志,直接将
Function.MyFunction的级别设为Error即可 - 要限制所有函数的Monitor日志都仅展示错误,建议新增
"Function": "Error"配置(优先级高于default,仅作用于所有函数日志),不建议直接修改default配置,避免影响主机运行日志等其他日志源的上报规则。
内容的提问来源于stack exchange,提问作者ShaneKm
相关产品推荐
相关产品推荐

