В версии 0.9.27 logback введена возможность замены .Замены поддерживают регулярные выражения.Например, если зарегистрированное сообщение было «userid = alice, pswd =« my secret »», а выходной шаблон был
"%d [%t] $logger - %msg%n",
, вы просто изменили шаблон на
"%d [%t] $logger - %replace(%msg){"pswd='.*'", "pswd='xxx'"}%n"
Обратите внимание, что в приведенном выше примере используется опция , заключенная в кавычки .
Предыдущее сообщение журнала будет выводиться как "userid = alice, pswd = 'xxx'"
Для высокой производительностиВы также можете пометить оператор журнала как КОНФИДЕНЦИАЛЬНО и дать команду% replace выполнять замену только для операторов журнала, помеченных как КОНФИДЕНЦИАЛЬНО.Например,
Marker confidential = MarkerFactory.getMarker("CONFIDENTIAL");
logger.info(confidential, "userid={}, password='{}'", userid, password);
К сожалению, текущая версия logback еще не поддерживает условные замены (на основе маркеров или иным образом).Однако вы можете легко написать свой собственный код замены, расширив ReplacingCompositeConverter.Если вам нужна дополнительная помощь, выкрикните в список рассылки logback-пользователей.