0

我目前正在设计一个 .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 是自由文本,但它应该是客户端“强制”实现的东西,类似于接口如何让您了解如何实现所需内容。

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

4

0 回答 0