Как создать многоразовую библиотеку семантической регистрации?

В настоящее время я занимаюсь разработкой библиотеки журналов.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 ответов

Другие вопросы по тегам