Logback之Logger,Appender和Layout

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。


未完等续.......................................................................................


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。