c# - 为什么 Application Insights 将 Nlog 错误写为 Trace 而不是异常?
问题描述
我正在使用 Microsoft.ApplicationInsights.NlogTarget 从我的 .Net Framework 4.7 控制台应用程序将指标发送到应用程序洞察,并使用 NLog 作为日志记录框架。
所有数据都可以正常发送,但是我使用 _logger.Error("message", ex) 记录的异常没有设置为执行,而是设置为跟踪。这使制作仪表板和通常查找日志变得复杂。
任何想法为什么这不会记录为异常,而是作为跟踪?
示例代码:
try {
string input = "ThisShouldThrow";
JObject jsonObject = JObject.Parse(input);
var activity = jsonObject["DoesnotExist"].ToObject<List<SomeClass>>();
}
catch (Exception ex) {
_logger.Error("Error parsing:", ex);
}
为 Nlog 和应用洞察力安装的最新 nuget 版本。
解决方案
您正在调用此方法:
Logger.Error(string format, object[] params);
你应该调用这个方法:
Logger.Error(Exception ex, string format, object[] params);
尝试这样做(首先放置异常对象):
_logger.Error(ex, "Error parsing");
推荐阅读
- pandas - 将源表作为 Pandas 数据框的 Snowflake MERGE 命令
- ms-access - 无法访问查询对象的 SQL 视图
- openai-gym - 是否可以保存用于安全健身房模拟的视频?
- keras - Tensorflowjs:如何判断keras模型转换成什么格式
- jquery - 如何从使用 Bootstrap 文件输入选择的文件中获取 Base64 字符串并使用 AJAX 提交字符串?
- python - Flask Sqlalchmey - Marshmallow Nested Schema 对于带有过滤器( where )条件的连接失败
- mysql - 如何以正确的方式转换系统模式`mysql`的字符集?
- python - 计算多列并在行中转置列 - PYTHON
- css - CSS Grid 中的行数有限制吗?
- python - python-gerrit-api 替代身份验证