我试图找出我的代码或方法有什么问题。我正在使用Azure函数(v3)并使用ILogger接口从我的函数中记录事件。下面是我正在使用的示例代码:
[FunctionName("GetVersion")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("[TEST] this is informational");
log.LogDebug("[TEST] this is debug");
log.LogTrace("[TEST] this is trace");
return new OkResult();
}
我的Azure函数启用了应用程序洞察,因此日志被写入traces表,我可以像这样查询它们:
traces
| order by timestamp
| where operation_Name == 'GetVersion'
| project timestamp,message,severityLevel
| limit 200
但结果如下所示(列是时间戳、消息,最后一列是日志严重性级别):
预期的行为是应用程序洞察中的严重性与文档中的严重性级别相匹配。我错过了什么?
附注。我的host.json如下所示
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
}
},
"logLevel": {
"default": "Information",
"Host.Results": "Information",
"Function": "Debug",
"Function.GetVersion": "Trace",
"Host.Aggregator": "Trace"
}
}
}
应用程序洞察的重要级别如下:https://docs.microsoft.com/en-us/dotnet/api/microsoft.applicationinsights.datacontracts.severitylevel?view=azure-dotnet
对于应用程序洞察,ILogger中的“logdebug”和“logtrace”是“详细的”。因此,据我所知,应用程序洞察无法区分或过滤掉您作为“logtrace”登录的内容,而过滤掉您作为“logdebug”登录的内容。
给定的第三方库的源代码我不能更改: 我想消除假阳性。 感谢您的反馈!
主要内容:如何设置日志级别?,日志级别如何工作?,Log4j 日志级别示例日志级别用于对日志文件中的信息进行分类。但是它们以非常具体的方式进行分类,即按紧急程度分类。该级别允许您管理以下类型的信息: 您可以在搜索过程中过滤您的日志文件。 您可以管理您记录的信息量。 系统中给出的信息量和类型以及事件日志由配置文件中的 log4j 日志级别设置控制。每条日志消息都以消息级别为前缀。 日志级别是org.apache.log4j.Level类的一个实例。 Log4j 具有以下级
0.8.0 [!]从 alibaba/weex-ui 迁移到 apcahe/incubator-weex-ui 0.7.1 [+] wxc-slider-bar 新增 wxcSliderBarTouchEnd 事件. [!] 修复 wxc-mask 输入时候抖动问题 [!] 修复调试时候 console 不显示二维码的问题 0.7.0 [-] 移除支付宝判断,防止审核问题 issue/467 [!
5.0.170927 [核心] 增加是否开放注册设置 增加已经安装模板文件检测是否已经删除功能 增加模板卸载风险提示 增加钩子同步功能 增加用户操作同步功能 #291 增加网站信息【$site_info】变量,可以在插件中使用 #310 修复添加管理员不能登录 #110 优化 admin.js 优化后台模板设计排版 优化后台加密码设置 返回按钮统一优化 优化 url 美化时规划选择 修复api模块
6.0.0-alpha0 [核心] 升级ThinkCMF 5.1到ThinkPHP 6.0
如何记录所有级别的事件(即信息、调试、跟踪、警告、错误和致命),只有当遇到错误、致命或警告级别的日志事件时,否则只记录信息级别。这确保了调试和跟踪日志(通常非常大)仅在必要时才被记录(即当检测到警告或错误时),从而节省了空间并加快了性能。