• Home
  • Articles
    • 日志
    • 妍小言
    • 舒小书
    • 浩然说
    • 生活日记
  • All Tags

log4j格式化占位符扩展

04 Sep 2017

Reading time ~1 minute

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


Log4jFormat