Что такое маркеры в фреймворках Java Logging и какие причины их использовать?

В первый раз я слышу о маркерах, когда читал:

http://slf4j.org/faq.html

Я проверяю доступные методы для объекта Logger:

и найдены интерфейсы:

Более подробную информацию я получаю от:

но все еще запутано... Обратите внимание, что я спрашиваю, почему, а не как их использовать, поэтому это не дубликат:

UPDATE Кажется, что при использовании маркеров вам также требуется написать собственный код Java, вместо этого выполнять настройку в файлах XML или .property...

ОБНОВЛЕНИЕ 2 От http://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator

Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN");
logger.error(notifyAdmin,
  "This is a serious an error requiring the admin attention",
   new Exception("Just testing"));

Ответ 1

Это пересмотренная версия моего ответа на вопрос "Рекомендации по использованию маркеров в SLF4J/Logback".

Маркеры могут использоваться для окраски или маркировки одного оператора журнала. То, что вы делаете с этими цветами, т.е. Маркеры, полностью зависит от вас. Тем не менее, два шаблона кажутся общими (первый более распространенный, чем второй) для использования маркеров.

  • Запуск. Некоторым приложению может быть предложено принять действие в присутствии определенного маркера. Например, SMTPAppender может быть настроен для отправки электронной почты всякий раз, когда событие регистрации помечено маркером NOTIFY_ADMIN независимо от уровня журнала. См. запуск на основе маркеров в документации по протоколированию. Вы также можете комбинировать уровни журналов и маркеры для запуска.

  • Фильтрация. Вы можете, например, покрасить/пометить все ваши журналы, связанные с сохранением (в файлах разных и нескольких классов) с цветом "БД". Затем вы можете отфильтровать "DB": отключить ведение журнала, за исключением операторов журналов, помеченных БД. Дополнительную информацию см. В главе в фильтрах в документации по регистрации (поиск по MarkerFilter).

До появления маркеров для достижения аналогичного поведения у вас была опция 1) использование пользовательских уровней 2) использование измененных имен журналов. В настоящее время API SLF4J не поддерживает пользовательские уровни. Что касается опции 2, то суффикс (или префикс) имен регистраторов можно использовать, если необходимо изменить один или два регистратора. Этот подход становится непрактичным, так как 3 или более регистратора должны быть "подклассифицированы", потому что связанные файлы конфигурации становятся неуправляемыми.