logback日志框架实践


发布于 2016-03-13 / 38 阅读 / 0 评论 /
前面从理论层面讲解了logback,下面我们通过demo在我们的应用程序中使用logback日志框架。

logback一般与Slf4j结合起来使用。

Slf4j全称Simple Logging Facade for Java,不是具体的日志解决方案,只服务于各种各样的日志系统(比如log4j、log4j2、logback)。

logback日志框架的使用主要有三步。

1.在pom.xml中添加依赖

依赖配置如下所示:

<!-- slf4j -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>${slf4j.version}</version>
</dependency>

<!-- logback -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>${logback.version}</version>
</dependency>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>${logback.version}</version>
</dependency>

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-access</artifactId>
    <version>${logback.version}</version>
</dependency>

主要就是添加slf4j和logback三个核心包。

2.添加配置文件logback.xml

默认内容例如下所示:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <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>

需要注意的是,编译期间,完成slf4j的绑定以及logback配置文件的加载。slf4j会在classpath中寻找org/slf4j/impl/StaticLoggerBinder.class(会在具体的日志框架如log4j、logback等中存在),找到并完成绑定;同时,logback也会在classpath中寻找配置文件,先找logback.configurationFile、没有则找logback.groovy,若logback.groovy也没有,则找logback-test.xml,若logback-test.xml还是没有,则找logback.xml,若连logback.xml也没有,那么说明没有配置logback的配置文件,那么logback则会启用默认的配置(日志信息只会打印在控制台)。

3.使用logger

使用案例如下所示:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TestBean {

    private static Logger logger = LoggerFactory.getLogger(TestBean.class);

    public void log(String message) {
        logger.debug("debug{}",message);
        logger.warn("warn{}",message);
        logger.info("info{}", message);
        logger.error("error{}", message, new Exception("error test"));
    }
}

至此,基本的案例结束,可在terminal查看到打印的日志信息。