log4j对xml配置解析
以下是log4j.xml对appender的定义例子
<appender name=""
class="org.apache.log4j.RollingFileAppender">
<param name="File" value="" />
<param name="MaxFileSize" value="" />
<param name="MaxBackupIndex" value="" />
<layout class="org.apache.log4j.PatternLayout"> //父类AppenderSkeleton定义
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} | %p | [%t] %m %n" />
</layout>
</appender>
问题来了layout元素的配置name=”ConversionPattern”,但是PatternLayout中并没有属性ConversionPattern而是pattern,那么现在解析这个xml时候是如何set到pattern中的呢?
大致上看了看源码,log4j通过DOMConfigurator类进行xml配置解析,方法Appender parseAppender (Element appenderElement)进行appender的解析
protected Appender parse