在自定义Appender
时,设置属性可以直接通过logback.xml
进行设置,但是枚举对象,默认的处理方法不能处理,
这事可以自己定义一个新的解析规则
1 2 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
属性进行设置
1 2 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>
|