В муле, когда приходит запрос, мул автоматически регистрирует полный запрос, который содержит информацию о кредитной карте, и мы не хотим регистрировать это поле в полезной нагрузке. Можем ли мы настроить полезную нагрузку, чтобы скрыть некоторые поля или замаскировать некоторые поля в журнале.
настроить регистратор мулов
Ответы (3)
Если вы регистрируете все категории мулов, то org.mule.DefaultMuleMessage также будет регистрироваться (и он содержит полезную нагрузку). В вашей конфигурации ведения журнала:
<!-- this will log all mule log messages -->
<logger name="org.mule" level="DEBUG" />
Если вы хотите скрыть это, вы можете уменьшить уровень категории родительского мула и явно зарегистрировать те, которые вас интересуют. Например:
<!-- this will log all mule log messages -->
<logger name="org.mule" level="WARN" />
<logger name="org.mule.endpoint" level="INFO" />
<logger name="org.mule.transformer" level="INFO" />
<logger name="org.mule.session" level="DEBUG" />
Вы можете применить регулярное выражение к своей полезной нагрузке до того, как logger. Ниже приведен пример кода.
cardRegex="(\\\\b(?!59\\\\d{14})\\\\d{13,50}\\\\b)"
maskedCardString="XXXX ... XXX"
Вышеуказанные значения находятся в файле .properties. Ниже описание заменяет совпадения регулярных выражений на XXXX ... XXX
#[payload.replaceAll(${cardRegex},${maskedCardString})]
Log4j2 имеет несколько способов замены данных по мере их записи в лог.
В новом тестовом приложении Mule откройте конфигурацию log4j2.xml и измените атрибут шаблона PatternLayout, например:
<PatternLayout pattern="%d [%t] %-5p %c - %replace{%m}{(^.*?)(foo)(.*?$)}{$1bar$3}%n" />
Таким образом, информация любого сообщения (%m), записанного в журнал, может быть отредактирована.
...orker.01] INFO org.mule.api.processor.LoggerMessageProcessor - бар