Extending logback configuration

Hi I have a default logback config. similar to the one below <appender name="JSON_CONSOLE_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> The above config is read and configured using the ImplicitAction without any issue and binds to a POJO public class Rules { private final Set<Rule> rules = new LinkedHashSet<>(); public void addRule(Rule definition) { rules.add(definition.createRule()); } ... } acts as a default configuration. This default configuration is not directly available to the clients, so they can't directly make changes to it. I am looking for ways to extend this default configuration where in the different users can specify additional rules in <userRules>. This configuration is provided in separate file outside of logback.xml in a file called custom.xml something like <userRules> <rule> <name>email</name> <pattern>([a-zA-Z0-9_\-\.]+)@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,5}</pattern> </rule> <rule> ... </userRules> I am looking for help to implement this so as that the logback config is configured with the set of default + custom rules Any pointers around how to implement this will be helpful
participants (1)
-
Rahul Narula