- 继承
org.apache.log4j.PatternLayout
,该类是用来提供解析类和格式化结果拼接动作的,可见:org.apache.log4j.PatternLayout#format
- 覆盖父类的
org.apache.log4j.PatternLayout#createPatternParser
方法,该方法会在父类构造函数中调用,用来创建解析器。 - 继承默认解析器
org.eddy.common.util.log.formatter.MyPatternParser
protected PatternParser createPatternParser(String pattern) { return new MyPatternParser(pattern); }
- 在自定义的Parser解析器中覆盖父类
org.apache.log4j.helpers.PatternParser#finalizeConverter
,用来扩展解析,具体扩展方式可参考父类的finalizeConverter
方法。 - log4j的可以使用百分号+英文字母作为占位符,依据英文字母作为对应解析器的关键字,用来查找对应的解析器。