问题标签 [semantic-logging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
42 浏览

wcf - 将列添加到跟踪表 - 企业日志记录数据库

我在 sql server 数据库上使用企业语义日志记录

我需要在 Traces 表中添加一个或多个特定列,而不是在 Payload 列中添加值

Maye 唯一的方法是创建一个自定义 SINK,但我没有找到如何做到这一点

有人已经遇到过这个要求吗?

0 投票
1 回答
58 浏览

c# - OpCode 附加到进程外语义日志记录(SALB)c# 中的事件名称

我正在使用弹性搜索进行进程外语义日志记录。当我使用 kibana 浏览事件时,我可以看到事件即将到来。但事件名称显示为“事件名称+操作码”。即事件 OpCode 被附加到事件名称。

我的示例活动之一是

在弹性搜索(Kibana)中,事件名称显示为“ RequestStartStart

操作码开始附加到事件名称是正常行为吗?

0 投票
0 回答
272 浏览

c# - 如何创建可重用的语义日志库?

我目前正在设计一个 .net 日志库,它可能作为 nuget 包在我们组织中的不同解决方案中使用。但是,我还想确保我们进行语义日志记录,以便日志仍然是结构化的。

例子 - CustomEventSource.Log.OrderProcessingFailed(order.OrderNumber, order.ItemCount);

鉴于我正在创建一个与应用程序无关的共享服务,它不应该与应用程序紧密耦合。这是一个示例流程。

  1. 开发者创建应用并下载日志包
  2. 开发人员创建特定于他们的应用程序的 EventsIds(例如 OrderProcessingFailed)、类别、关键字等
  3. 开发人员创建记录组件的实例,传递机器名称、事件源名称等详细信息。
  4. 开发人员使用在步骤 2 中创建的日志记录实例传递详细信息以及相关的名称值参数数组(例如 OrderNumber:1234,ItemCount:3)来创建日志。
  5. 日志库将事件写入 ETW。
  6. 外部侦听器捕获事件。

有没有人看到类似上面的解决方案?我的问题更多关于如何实施上面的第 2 步。我不希望 EventId 是自由文本,但它应该是客户端“强制”实现的东西,类似于接口如何让您了解如何实现所需内容。

我知道我的问题在这一点上有点模糊,所以欢迎澄清。

0 投票
1 回答
576 浏览

etw - SemanticLogging 在 EventSource 的命令处理中引发异常

在某些机器上(可能仅在 Windows 7 和 2008 R2 上,但不在 Windows 10 上)我在使用 SemanticLogging 时遇到问题。当我运行它时,我收到了闲置的输出:

所有发生在特定场景中的事情:

  1. 我正在开始编写事件的过程
  2. 然后我运行 SemanticLogging-svc.exe -c
  3. 片刻后发生错误

但是当我改变顺序并第一次启动SemanticLogging-svc.exe然后我运行“ event writer”时,一切都按照它应该的方式进行。

但是,当我按照第一个场景中的描述设置所有内容时,在出现错误后,我将尝试使用PerfView魔法收集数据并SemanticLogging开始收集数据。

使用 PerfView 我检查了Microsoft-SemanticLogging-Etw源代码,但那里什么也没有。

SemanticLogging-svc.config

事件格式化程序

事件源

0 投票
1 回答
2240 浏览

c# - .Net Core 1.1 在记录时不序列化对象

我有 ASP.NET Core 1.1 应用程序,我正在使用 Serilog 进行日志记录。我想通过保留其结构来记录 DTO 对象。

所以如果我直接Serilog.Log用来记录 DTO,如下所示

然后 Serilog 序列化 DTO 并按预期记录它。

但是我正在注入Microsoft.Extension.Logging.ILogger控制器。我认为它会使用配置的记录器进行记录,并且会在记录时序列化对象,但事实并非如此。它只记录对象的类型名称。

启动.cs

应用设置.json

0 投票
0 回答
26 浏览

json - 在 NLog 流利的日志记录中,如何强制将日志属性呈现为 JSON?

我正在使用 NLog 在 Seq 服务器中创建语义日志。我想记录一个对象,该对象具有一种ToString()生成数据内容的简短人类可读摘要的方法。因此,我想在使用消息模板对其进行格式化时将对象呈现为字符串。我还想将该对象作为日志属性包含在内,并将其所有属性呈现为 JSON,以便我可以在 Seq.xml 中检查这些数据。所以基本上我想用两种不同的方式记录同一个对象。

这是我尝试在代码中执行此操作的方式:

第一部分工作正常。问题出在.Property()零件上。这也调用.ToString()对象并将其呈现为字符串。我想要一个 JSON 文档。

如果我使用它作为我的消息模板,我可以获得这种效果:

这会将对象作为 JSON 呈现到日志属性中,但不幸的是,也会将 JSON 注入格式化的日志消息中,这会导致消息非常不可读。使用时如何获得这种行为.Property()