Во-первых, как сказал @darioo:
- MDC используется для связывания нескольких событий с несколькими «сущностями»
- [Маркеры] используются для «специальных» событий, которые вы хотитеотфильтровать от обычных
Итак, ваше утверждение, что вы хотите использовать MDC для этого.Маркеры предназначены для выделения «специальных» событий - фильтрации, если хотите - вместо «нарезки».Например, вы можете срезать на основе конкретного пользователя, но фильтровать на основе любых непредвиденных исключений.В этом случае вы бы создали User MDC измерение и UnexpectedException Marker.
Но, очевидно, это не решает вопрос, который вы имели в виду,Вы «скорее ссылаетесь на более общий уровень того, как можно настроить ведение журнала с использованием маркеров последовательно».Итак, обратимся к следующему:
MDC для нарезки и нарезки , а маркеры для фильтрации . Эти действия выполняются во время испытаний и на производстве .Таким образом, вам нужно решить, какие измерения, по вашим ожиданиям, могут быть полезны для нарезки данных журнала, и в каких случаях было бы полезно отфильтровать их, когда начнется тестирование / производство. Каждое измерение получает измерение MDC.Каждый случай получает Маркер. Это так просто.
Разработчикам не нужно принимать здесь никаких решений. Один человек или команда должны решить, во время разработки , какие виды нарезки, нарезки кубиками и фильтрации должны поддерживаться.Это следует проинформировать, представив, какие аналитические задачи можно ожидать от них.
Этот же человек или группа должны принять решение по соглашению об именах. Это совершенно произвольно .Выберите что-то, что эстетично, , информативно (самое важное) и достаточно конкретное, чтобы не вступать в конфликт с последующими дополнениями.Подчеркивание в дефисах против чрезвычайно придирчиво и тревожно не относится к делу, но обратите внимание, что сотрудники ESL могут быть менее запутанными при чтении подчеркиваний (по крайней мере по сравнению с CamelCase);в то же время это, как сообщается, раздражает некоторых разработчиков из-за неловкости в достижении необходимых ключей.
Что касается выбора политики, то это просто означает определение, в каких случаях данное измерение маркера или MDCдолжен быть занят .Держите это строго (централизованно, преднамеренно), но учитывайте обратную связь от разработчиков, если они чувствуют, что набор измерений и маркеров недостаточен для поставленной задачи.Пересмотрите / добавьте размеры и / или атрибуты в зависимости от ситуации.
Поймите Эта политика почти обязательно будет зависеть от проекта .Не каждый проект требует такого же анализа журналирования.Изобразите некоторые кошмарные сценарии.Затем представьте, как вы хотели бы иметь возможность анализировать журналы в этом сценарии.Вы, вероятно, не хотите писать сложный сценарий, чтобы попытаться отследить, какое сообщение принадлежит какому контексту и какое состояние в какое время и в какое время, верно?Кодируйте любую необходимую информацию, такую как размеры и маркеры, и избавьте себя от хлопот, если что-то пойдет не так.