Logback 可以通过编程式配置,或用 XML 格式的配置文件进行配置。
Logback 采取下面的步骤进行自我配置:
1. 尝试在 classpath 下查找文件 logback-test.xml; 2. 如果文件不存在,则查找文件 logback.xml; 3. 如果两个文件都不存在,logback 用 BasicConfigurator 自动对自己进行配置,这会 导致记录输出到控制台。
第三步也是最后一步是为了在缺少配置文件时提供默认(但基本的)记录功能。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyApp1 {
final static Logger logger = LoggerFactory.getLogger(MyApp1.class);
public static void main(String[] args) {
logger.info("Entering application.");
Foo foo = new Foo();
foo.doIt();
logger.info("Exiting application.");
}
}
最简单的配置方法就是使用默认配置。
BasicConfigurator 用法的简单例子:
该 类 定义 了一 个静 态变量 logger ,然 后实 例 化一 个 Foo 对象。Foo 类如下
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Foo {
static final Logger logger = LoggerFactory.getLogger(Foo.class);
public void doIt() {
logger.debug("Did it again!");
}
}
假设配置文件 logback-test.xml 和 logback.xml 都不存在,那么 logback 默认地会调用 BasicConfigurator , 创 建一 个 最小 化配 置 。最 小化 配置 由 一个 关联 到 根 logger 的 ConsoleAppender 组成。输出用模式为%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 的 PatternLayoutEncoder 进行格式化。还有,根 logger 默认级别是 DEBUG。
MyApp1 程序通过调用 org.slf4j.LoggerFactory 类和 org.slf4j.Logger 类连接到 logback, 取得想 要的 logger, 然后 继续 。注意 Foo 类对 logback 唯 一的 依赖 是通 过引入 org.slf4j.LoggerFactory 和 org.slf4j.Logger.
如果 classpath 里有 logback-test.xml 或 logback.xml,logback 会试图用它进 行自我配置。下面的配置文件与刚才的 BasicConfigurator 等效。
示例:基本配置文件
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
把logback.xml ,放到 classpath 里,运行后会和上例的输出几乎一样。