У меня есть конфигурация приложения по умолчанию (в которой используются провайдеры из logstash-logback-encoder), аналогичная приведенной ниже
<appender name="JSON_APPENDER" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="a.b.c.logging.CustomLogbackEncoder">
<providers>
<timestamp/>
<version/>
<loggerName/>
<threadName/>
<logLevel/>
<provider class="a.b.c.logging.LogMaskingProvider">
<rules>
<rule>
<name>cc</name>
<pattern>\d{13,18}</pattern>
</rule>
<rule>
<name>SSN</name>
<pattern>\s+\d{3}-?\d{3}-?\d{4}\s+</pattern>
</rule>
</rules>
<userRules>
<!-- **** Read custom user rules ****--->
</userRules>
</provider>
<stackTrace/>
</providers>
</encoder>
</appender>
Приведенная выше конфигурация считывается и настраивается с использованием ImplicitAction без каких-либо проблем и связывается сследующий POJO
public class Rules {
private final Set<Rule> rules = new LinkedHashSet<>();
public void addRule(Rule definition) {
rules.add(definition.createRule());
}
...
}
действует как конфигурация по умолчанию.Эта конфигурация по умолчанию не доступна напрямую клиентам, поэтому они не могут напрямую вносить в нее изменения.
Я ищу способы расширить эту конфигурацию по умолчанию, в которой разные пользователи могут указывать дополнительные правила.Эта конфигурация предоставляется в отдельном файле за пределами logback.xml в файле с именем custom.xml, что-то вроде
<userRules>
<rule>
<name>email</name>
<pattern>([a-zA-Z0-9_\-\.]+)@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,5}</pattern>
</rule>
<rule>
...
</rule>
</userRules>
Я ищу помощь в реализации этого (помечено между ****), чтобыпровайдер получает userRules, как указано во внешнем файле, а приложение обратного входа настраивается с набором правил по умолчанию + настраиваемые правила
. Любые указания относительно того, как это реализовать, будут полезны