Logback добавить настраиваемое поле/поля во все журналыJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Logback добавить настраиваемое поле/поля во все журналы

Сообщение Anonymous »

Для приложения Spring я хочу добавить в журнал настраиваемое поле.
В настоящее время я использую формат по умолчанию, но хочу добавить настраиваемое поле (поле категории), которое должно присутствовать во всех журналах:

Код: Выделить всё

W:Action D:2022-01-10 23:21:03.285 L:INFO C:c.h.l.LoggingDemoApplication F:StartupInfoLogger.java(61) Fn:logStarted T:main R: - Hello World
Какое лучшее решение добавить настраиваемое поле в журнал журнала?
До сих пор я изучал следующие возможные решения:
  • Использовать маркер. Недостатком этого является то, что оно не масштабируется: если в будущем вам понадобится другое настраиваемое поле, вы не сможете добавить еще один маркер. Кроме того, судя по некоторым другим сообщениям, маркер лучше всего подходит для пометки специальных журналов, которые необходимо обрабатывать по-разному.
  • Используйте MDC.
    Также использование этого кажется не лучшим решением, потому что:
    • Он сохраняет контекст, поэтому, если в одной функции есть несколько операторов журнала, перед каждым logger.info() должен быть MDC.put("category", "action")
    • Код становится многословным.
  • Создайте собственный конвертер (ссылка). Получите аргументы из ILoggingEvent, получите аргумент 0. Если это тот же тип, что и перечисление категории, используйте его. Вызов для этого похож на logger.info("Сообщение здесь: {} {} {}", CatEnum.Action.getValue(), msg1, msg2, msg3).
  • Создайте некоторый статический метод, в котором генерируется окончательный формат.
    Шаблон похож на:
    %m%n
    Для регистрации следует использовать что-то вроде этого: logger.info(customFormatter.fmtLog(CatEnum.Action.getValue(), msg)). Возвращаемое значение fmtLog должно представлять собой всю информацию из журнала по умолчанию + поле категории.
Существуют ли какие-либо встроенные решения для добавления настраиваемого поля?

Подробнее здесь: https://stackoverflow.com/questions/706 ... l-the-logs
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»