如何创建可重用的语义记录库?

时间:2017-04-11 10:40:10

标签: c# design-patterns enterprise-library semantic-logging

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

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

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

  1. 开发人员创建应用程序并下载日志包
  2. 开发人员创建EventsIds(例如OrderProcessingFailed),类别,关键字等...特定于 他们的申请
  3. Developer创建日志记录组件的实例 传递机器名称,事件源名称等详细信息。
  4. 开发者 使用记录实例传递在步骤中创建的详细信 2 AND一组相关的名称值参数(例如OrderNumber:1234,ItemCount:3)。
  5. 记录库将事件写入ETW。
  6. 外部侦听器捕获事件。
  7. 有没有人见过类似上面的解决方案?我的问题更多的是如何实施上述第2步。我不希望EventId是自由文本,但它应该是客户端“被迫”实现的类似于接口如何让您了解如何实现所需内容。

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

0 个答案:

没有答案