Шаблон Log4j2: экранирование двойных кавычек в значениях передаваемых сообщенийJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Шаблон Log4j2: экранирование двойных кавычек в значениях передаваемых сообщений

Сообщение Anonymous »

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

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

dateTime="%d{yyyy-MM-dd HH:mm:ss.SSS}" msg="%msg%throwable"%n
Наш код создает журналы следующим образом...

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

log.info("Request started");
log.debug("Data received: {}, dataAsJsonObject);
log.error("Reading file failed", ex);
... который затем выдаст такое сообщение:

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

dateTime="2024-06-25 13:05:12.984" msg="Request started"
Проблема заключается в том, что сообщения журнала, переданные из кода, содержат двойные кавычки (например, при распечатке содержимого JSON). Они «искажают» последовательность кавычек в напечатанном сообщении журнала. Как вы можете см. в этом примере значение ключа msg теперь уменьшено до Полученные данные: {.

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

dateTime="2024-06-25 13:05:12.984" msg="Data received: {"key": "value"}"
Есть ли какой-нибудь способ, чтобы log4j2 экранировал двойные кавычки в значениях, передаваемых в строку формата (например, " -> \" и \ -> \\), для такого результата?

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

dateTime="2024-06-25 13:05:12.984" msg="Data received: {\"key\": \"value\"}"
Примечание. Чтобы внести ясность: я говорю об экранировании двойных кавычек не в самом шаблоне формата, а в значениях, которые передаются в форматтер, который расширяет шаблон с помощью переданных значений. значения журнала.

Подробнее здесь: https://stackoverflow.com/questions/786 ... age-values
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Шаблон Log4j2: экранирование двойных кавычек в значениях передаваемых сообщений
    Anonymous » » в форуме JAVA
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Экранирование двойных кавычек при отправке JSON в качестве аргумента в программе Python
    Anonymous » » в форуме Python
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • Экранирование кавычек в подпроцессах Python для Windows
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Экранирование кавычек в подпроцессах Python для Windows
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Экранирование одинарных кавычек для массовой вставки во временную таблицу, а затем копирование в основную
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous

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