我有一个默认的附加程序配置(它使用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,并且使用默认+自定义规则集配置回退追加程序>
任何有关如何实现此目的的指针都会有所帮助