在获得log对象时,调用LoggerRepository.getLogger();Hierarchy是其默认实现。
两个support接口,RenderSupport通过RendererMap维护class和ObjectRenderer的关系,而ObjectRenderer提供将对象object渲染为String的方法。ThrowableRendererSupport设置ThrowableRenderer对象,将Throwable渲染为String[],异常的详细信息。
在LogManager中通过构造方法来创建一个容器对象。
public Hierarchy(Logger root) {
ht = new Hashtable(); // hashtable
listeners = new Vector(1); // vector
this.root = root; // 根日志
setThreshold(Level.ALL); // 设定可全部输出
this.root.setHierarchy(this); // 根日志的容器为当前对象
rendererMap = new RendererMap(); // class和objectrenderer的关系map
defaultFactory = new DefaultCategoryFactory(); // 创建logger的默认工厂
}