我是log4j框架的新手。我正在阅读教程他们都说"记录器存储在名称空间层次结构中#34; ?
这是否与记录器的对象实例化有关?
什么logger.getLogger(App.class)实际上做了什么?它是否为App.class创建了一个单独的logger实例?
答案 0 :(得分:2)
Logger对象是记录任何消息的主要对象。 Logger对象封装了日志消息,并且没有任何有关目标或格式的信息。
在特定app应用程序中执行的Logger对象遵循PARENT-CHILD层次结构。
在层次结构的顶部,存在根记录器。此根记录器存在于自定义记录器层次结构的范围之外。所有其他特定于应用程序的Logger对象都是根记录器的子对象。记录器的这种父子关系表示在同一应用程序中作用的记录器的依赖性。子Logger可以从其父记录器继承属性。
答案 1 :(得分:0)
如果您创建4个记录器“com.foo.apple”,“com.foo.juice”,“com.bar.tomato”,“com.bar.potato”,您将具有以下层次结构:
com
.foo
.apple
.juice
.bar
.tomato
.potato
配置记录器时会发挥作用。例如LogLevel - 你可以为“com”节点设置DEBUG,为“com.foo”设置WARN,为“com.foo.juice”设置ERROR。记录器“com.foo.apple”将处于WARN级别,记录器“com.bar”,“com.bar.tomato”,“com.bar.potato”在这种情况下将处于DEBUG级别。