<div dir="ltr"><div dir="ltr">Hi<div><br></div><div>I have a default logback config. similar to the one below</div><div><pre style="background-color:rgb(43,43,43);color:rgb(169,183,198);font-family:Menlo;font-size:9pt"><span style="color:rgb(232,191,106)"><appender </span><span style="color:rgb(186,186,186)">name</span><span style="color:rgb(106,135,89)">="JSON_CONSOLE_APPENDER" </span><span style="color:rgb(186,186,186)">class</span><span style="color:rgb(106,135,89)">="ch.qos.logback.core.ConsoleAppender"</span><span style="color:rgb(232,191,106)">><br></span><span style="color:rgb(232,191,106)"> <encoder </span><span style="color:rgb(186,186,186)">class</span><span style="color:rgb(106,135,89)">="a.b.c.logging.CustomLogbackEncoder"</span><span style="color:rgb(232,191,106)">><br></span><span style="color:rgb(232,191,106)">  <providers><br></span><span style="color:rgb(232,191,106)">   <timestamp/><br></span><span style="color:rgb(232,191,106)">   <version/><br></span><span style="color:rgb(232,191,106)">   <loggerName/><br></span><span style="color:rgb(232,191,106)">   <threadName/><br></span><span style="color:rgb(232,191,106)">   <logLevel/><br></span><span style="color:rgb(232,191,106)">   <provider </span><span style="color:rgb(186,186,186)">class</span><span style="color:rgb(106,135,89)">="a.b.c.logging.LogMaskingProvider"</span><span style="color:rgb(232,191,106)">><br></span><span style="color:rgb(232,191,106)">    <rules><br></span><span style="color:rgb(232,191,106)">    <rule><br></span><span style="color:rgb(232,191,106)">     <name></span>cc<span style="color:rgb(232,191,106)"></name><br></span><span style="color:rgb(232,191,106)">     <pattern></span>\d{13,18}<span style="color:rgb(232,191,106)"></pattern><br></span><span style="color:rgb(232,191,106)">   </span><span style="color:rgb(232,191,106)"> </rule><br></span><span style="color:rgb(232,191,106)">    <rule><br></span><span style="color:rgb(232,191,106)">     <name></span>SSN<span style="color:rgb(232,191,106)"></name><br></span><span style="color:rgb(232,191,106)">     <pattern></span>\s+\d{3}-?\d{3}-?\d{4}\s+<span style="color:rgb(232,191,106)"></pattern><br></span><span style="color:rgb(232,191,106)">    </rule><br></span><span style="color:rgb(232,191,106)">    </span><span style="color:rgb(232,191,106)"></rules><br></span><span style="color:rgb(232,191,106)">   <userRules><br></span><span style="color:rgb(232,191,106)">    <!-- Read custom user rules ---></span><span style="color:rgb(232,191,106)"><br></span><span style="color:rgb(232,191,106)">    </userRules><br></span><span style="color:rgb(232,191,106)">   </provider><br></span><span style="color:rgb(232,191,106)">   <stackTrace/><br></span><span style="color:rgb(232,191,106)">  </providers><br></span><span style="color:rgb(232,191,106)"> </encoder></span></pre></div><div>The above config is read and configured using the ImplicitAction without any issue and binds to a POJO </div><div><br></div><div><pre style="background-color:rgb(43,43,43);color:rgb(169,183,198);font-family:Menlo;font-size:9pt"><span style="color:rgb(204,120,50)">public class </span>Rules {<br><br><span style="color:rgb(128,128,128)">  </span><span style="color:rgb(204,120,50)">private final </span>Set<Rule> <span style="color:rgb(152,118,170)">rules </span>= <span style="color:rgb(204,120,50)">new </span>LinkedHashSet<>()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"><br></span><span style="color:rgb(204,120,50)">  public void </span><span style="color:rgb(255,198,109)">addRule</span>(Rule definition) {<br>    <span style="color:rgb(152,118,170)">rules</span>.add(definition.createRule())<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)">  </span>}<br><br> ...<br>}</pre></div><div>acts as a default configuration. This default configuration is not directly available to the clients, so they can't directly make changes to it.</div><div><br></div><div>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 </div><div><pre style="background-color:rgb(43,43,43);color:rgb(169,183,198);font-family:Menlo;font-size:9pt"><span style="color:rgb(232,191,106)"><userRules>   
<rule><br></span><span style="color:rgb(232,191,106)">      <name></span>email<span style="color:rgb(232,191,106)"></name><br></span><span style="color:rgb(232,191,106)">      <pattern></span>([a-zA-Z0-9_\-\.]+)@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,5}<span style="color:rgb(232,191,106)"></pattern><br></span><span style="color:rgb(232,191,106)">   </rule>
   <rule>
    ...
</userRules></span></pre></div><div>I am looking for help to implement this so as that the logback config is configured with the set of default + custom rules</div><div><br></div><div>Any pointers around how to implement this will be helpful<br><br></div></div></div>