我有一个像这样的自定义对象。
public class Propertey
{
public string Key { get; set; }
public string Value { get; set; }
}
public class MonitoringEvent
{
public string AppName { get; set; }
public string Service { get; set; }
public string Fuction { get; set; }
public string CorrelationId { get; set; }
public List<Propertey> Properties { get; set; }
public string EventName { get; set; }
public DateTime TimeStamp { get; set; } = DateTime.UtcNow;
}
这个对象是从系统外部填充的,在我的函数应用程序中,我试图将其记录到 App Insights 中。
[FunctionName("EventMonitoring")]
public async Task Run([ServiceBusTrigger(
"cta-event-monitoring",
"monitoring",
Connection = "ServiceBusConnectionString",
IsSessionsEnabled = false)]string mySbMsg, ILogger log)
{
try
{
MonitoringEvent me = JsonConvert.DeserializeObject<MonitoringEvent>(mySbMsg);
log.LogInformation("MonitoringEvent", me);
}
catch (Exception ex)
{
log.LogError("MonitoringEventError",ex);
}
}
当我看到应用程序见解时,我在应用程序见解中看不到“AppName”“Service”等属性。我在哪里可以找到它们?稍后我也希望能够查询它们。但我在应用程序洞察中看到的都是这样的
最佳答案
您需要使用log message template登录。消息模板可以包含为其提供参数的占位符。使用占位符的名称。在您的情况下,这意味着您需要添加命名模板位置
log.LogInformation("MonitoringEvent {Event}", me);
这将在应用程序洞察的跟踪中创建自定义属性“事件”。
在当前代码中,您没有提供占位符,因此参数无法放置在某处并且会被忽略。
此外,请注意应用程序洞察可能会在任何 object
参数上使用 .ToString()
,因此最好的选择是仅使用 mySbMsg
code> 作为参数。
关于c# - 应用程序洞察中自定义对象的属性在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67679736/
多年来,这一直是令人困惑和沮丧的根源。假设您导入了一个文档记录特别差的模块,并且您需要的某个方法只有 **kwargs 作为其参数,您应该如何知道该方法正在检查哪些键? def test(**kwar
一:背景 1. 讲故事 前几天写了一篇 如何洞察 .NET程序 非托管句柄泄露 的文章,文中使用 WinDbg 的 !htrace 命令实现了句柄泄露的洞察,在文末我也说了,Wi
所以我正在尝试使用 Facebook Python API提取我们的参与数据(点赞、分享等,基本上是 Facebook 网站上“洞察”选项卡下的所有内容)。 我已设法通过 API 建立连接并使访问 t
我注意到从 facebook insights 返回的数据在从 API 获取数据时与从 CSV 导出数据中获取时存在一致的差异。例如,对于某个指标 (page_impressions_unique_d
我用 Python 创建了一个 XGBoost 模型,并使用以下代码来更好地理解该模型: xgb.plot_importance(model) 或 xgb.plot_importance(model,
谁能告诉我 Visual Studio 的内存转储中概述的行为类型 正常吗?例如,StackExchange.Redis.PhysicalConnection 在包含大小(字节)上运行得那么高吗?还是
谁能告诉我 Visual Studio 的内存转储中概述的行为类型 正常吗?例如,StackExchange.Redis.PhysicalConnection 在包含大小(字节)上运行得那么高吗?还是