Logback建立于三个主要类之上:Logger,Appender和Layout。这三种组件协同工作,使开发者可以按照消息类型和级别来记录消息,还可以在程序运行期内控制消息的输出格式和输出目的地。
Logger类是logback-classic模块的一部分,而Appender和Layout接口来自logback-core。作为一个多用途模块,logback-core不包含任何logger。
1. Logger上下文
在logback-classic里,各个logger都被关联到一个LoggerContext,LoggerContext负责制造logger,也负责以树结构排列各logger。Logger是命名了的实体。它们的名字大小写敏感且遵从下面的层次化的命名规则:如果logger的名称带上一个点号后是另外一个logger的名称的前缀,那么,前者就被称为后者的祖先。如果logger与其后代logger之间没有其他祖先,那么,前者就被称为子logger之父。根logger位于logger等级的最顶端,它的特别之处是它是每个层次等级的共同始祖。如同其他各logger,根logger可以通过其名称取得,如下所示:
Logger rootLogger = LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
其他所有logger也通过org.slf4j.LoggerFactory类的静态方法getLogger取得。getLogger方法以logger名称为参数。
2. 有效级别(Level)即级别继承
Logger可以被分配级别。级别包括:TRACE,DEBUG,INFO,WARN和ERROR,定义于ch.qos.logback.classic.Level类。注意在logback里,Level类是final的,不能被继承,Marker对象提供了更灵活的方法。
如果logger没有被分配级别,那么它将从有被分配级别的最近的祖先那里继承级别。更正式地说:logger L的有效级别等于其层次等级的第一个非null级别,顺序是从L开始,向上直至根logger。为确保所有logger都能够最终继承一个级别,根logger总是有级别,默认情况下,这个级别是DEBUG。
未完等续.......................................................................................