@Override
protected void addInstanceRules(RuleStore rs) {
// is "configuration/variable" referenced in the docs?
rs.addRule(new ElementSelector("configuration/variable"), new PropertyAction());
rs.addRule(new ElementSelector("configuration/property"), new PropertyAction());
rs.addRule(new ElementSelector("configuration/substitutionProperty"),
new PropertyAction());
rs.addRule(new ElementSelector("configuration/timestamp"), new TimestampAction());
rs.addRule(new ElementSelector("configuration/define"), new DefinePropertyAction());
// the contextProperty pattern is deprecated. It is undocumented
// and will be dropped in future versions of logback
rs.addRule(new ElementSelector("configuration/contextProperty"),
new ContextPropertyAction());
rs.addRule(new ElementSelector("configuration/conversionRule"),
new ConversionRuleAction());
rs.addRule(new ElementSelector("configuration/statusListener"),
new StatusListenerAction());
rs.addRule(new ElementSelector("configuration/appender"), new AppenderAction());
rs.addRule(new ElementSelector("configuration/appender/appender-ref"),
new AppenderRefAction());
rs.addRule(new ElementSelector("configuration/newRule"), new NewRuleAction());
rs.addRule(new ElementSelector("*/param"), new ParamAction());
}