Logger可以被分配级别。级别包括:TRACE、DEBUG、INFO、WARN和ERROR,定义于ch.qos.logback.classic.Level类。注意在logback里,Level类是final的,不能被继承,Marker对象提供了更灵活的方法。
如果logger没有被分配级别,那么它将从有被分配级别的最近的祖先那里继承级别。更正式地说:
logger L的有效级别等于其层次等级里的第一个非null级别,顺序是从L开始,向上直至根logger。
为确保所有logger都能够最终继承一个级别,根logger总是有级别,默认情况下,这个级别是DEBUG。
下面的四个例子包含各种分配级别值和根据级别继承规则得出的最终有效(继承)级别。
在示例 1 中,仅根logger被分配了级别。级别值DEBUG被其他logger X、X.Y和X.Y.Z继承。
在示例 2 中,所有的 logger 都被分配了级别,级别继承不发挥作用。
在示例 3 中,根 logger、X和X.Y.Z分别被分配了 DEBUG、INFO和ERROR级别。X.Y从其父X继承级别。
在示例 4 中,根 logger 和 X 分别被分配了 DEBUG 和 INFO 级别。X.Y和X.Y.Z从其最近的父X继承级别,因为X被分配了级别。
REF:http://cwiki.ossez.com/pages/viewpage.action?pageId=4719684