在自定义Appender时,设置属性可以直接通过logback.xml进行设置,但是枚举对象,默认的处理方法不能处理,
这事可以自己定义一个新的解析规则
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 | public class DIYAppender extends OutputStreamAppender {
 
 
 private String attr;
 
 
 
 private User objAttr;
 
 
 
 private enumObj enumAttr;
 
 }
 public class User {
 
 }
 public enum enumObj {
 Instance;
 private String name;
 
 }
 public class enumObjAction extends ch.qos.logback.core.joran.action.Action {
 @Override
 public void begin(InterpretationContext ic, String name, Attributes attributes) throws ActionException {
 ic.pushObject(enumObj.Instance);
 }
 
 @Override
 public void end(InterpretationContext ic, String name) throws ActionException {
 
 }
 }
 
 | 
可以在logback.xml的appender节点中直接进行设置,如果属性是对象可以提供class属性进行设置
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | <newRule pattern="configuration/appender/enumAttr" class="enumObjAction"/><appender class="DIYAppender">
 <attr>value</attr>
 <objAttr class="package.User">
 
 </objAttr>
 <enumAttr>
 <name>nameValue</name>
 </enumAttr>
 </appender>
 
 |