Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在azure函数中将loglevel设置为跟踪时,无法查看跟踪日志_Azure_Asp.net Core_Azure Functions_Azure Application Insights_Serverless Framework - Fatal编程技术网

在azure函数中将loglevel设置为跟踪时,无法查看跟踪日志

在azure函数中将loglevel设置为跟踪时,无法查看跟踪日志,azure,asp.net-core,azure-functions,azure-application-insights,serverless-framework,Azure,Asp.net Core,Azure Functions,Azure Application Insights,Serverless Framework,复制步骤: 在VS中创建新的V2函数应用程序 选择HTTP触发器,粘贴以下代码: log.LogTrace(“这是一个跟踪日志”); LogDebug(“这是一个调试日志”); log.LogInformation(“这是一个信息日志”); log.LogWarning(“这是一个警告日志”); LogError(“这是一个错误日志”); log.LogCritical(“这是一个关键日志”); 返回新的OkResult(); 转到host.json,配置如下: { “版本”:“2.0”, “

复制步骤:

在VS中创建新的V2函数应用程序 选择HTTP触发器,粘贴以下代码:

log.LogTrace(“这是一个跟踪日志”);
LogDebug(“这是一个调试日志”);
log.LogInformation(“这是一个信息日志”);
log.LogWarning(“这是一个警告日志”);
LogError(“这是一个错误日志”);
log.LogCritical(“这是一个关键日志”);
返回新的OkResult();
转到host.json,配置如下:

{
“版本”:“2.0”,
“日志记录”:{
“应用程序说明”:{
“采样排除类型”:“请求”,
“采样设置”:{
“isEnabled”:错误
},
“文件记录模式”:“始终”,
“日志级别”:{
“默认值”:“跟踪”,
“Host.Results”:“Error”,
“函数”:“跟踪”,
“主机聚合器”:“跟踪”
}
}
}
}
运行主机,触发HTTP函数 预期结果-跟踪消息应出现在应用程序细节中

union traces
| union exceptions
|union requests
| where timestamp > ago(30d)
| where operation_Id == 'be439155fd015344badd3839da2652a8'
| where customDimensions['InvocationId'] == '6057a32f-0f59-4193-8845-a5f9d972169f'
| order by timestamp asc
| project timestamp, message = iff(message != '', message, iff(innermostMessage != '', innermostMessage, customDimensions.['prop__{OriginalFormat}'])), logLevel = customDimensions.['LogLevel']

实际结果: 应用程序洞察中的查询

union traces
| union exceptions
|union requests
| where timestamp > ago(30d)
| where operation_Id == 'be439155fd015344badd3839da2652a8'
| where customDimensions['InvocationId'] == '6057a32f-0f59-4193-8845-a5f9d972169f'
| order by timestamp asc
| project timestamp, message = iff(message != '', message, iff(innermostMessage != '', innermostMessage, customDimensions.['prop__{OriginalFormat}'])), logLevel = customDimensions.['LogLevel']


该json文件不正确
fileLoggingMode
不是
applicationInsights
对象的属性。此外,不应在application insights部分中设置Host.Result和Host.Aggregator类别的日志级别。看

但是,除此之外,您还遇到了一些问题,因为函数的最小日志类别筛选应该低于或等于application insights的日志级别。azure函数中的默认日志级别为
信息
,因此跟踪不会通过

试试这个:

{
  "version": "2.0",
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information",
      "Host.Results": "Information",
      "Function": "Trace",
      "Host.Aggregator": "Information"
    },
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": false
      },
      "logLevel": {
        "default": "Trace"
      }
    }
  }
}

给定上述示例,函数类别的日志级别与application insights的日志级别匹配。否则,application insights日志提供程序将无法提取日志并将其作为TraceTelemetry发送给application insights。

谢谢peter。您的回复帮助我解决了这个问题。是的,我在json文件中犯了几个错误,通过您的引用,我修复了这些错误,并且工作正常。再次感谢。@RamanMiddha很高兴能为您提供帮助。如果答案适合您,请按照描述接受