@Logback简介

  Ceki Gülcü在Java日志领域世界知名。他创造了Log4J,这个最早的Java日志框架即便在JRE内置日志功能的竞争下仍然非常流行。随后他又着手实现SLF4J这个"简单的日志前端接口(Facade)"来替代Jakarta Commons-Logging。

要在工程里面使用logback需要以下jar文件:

maven依赖

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.7</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-access</artifactId>
    <version>1.1.7</version>
</dependency>

不需要再写logback-core和slf4j的依赖,因为logback-classic依赖这两个jar包。

注:

logback.xml(放在src/main/resource底下),不然找不到,即放在classpath最外层

这样是找不到的,会使用默认配置

这样就可以了,要在classpath最外层
1.logback首先会试着查找logback.groovy文件;
2.当没有找到时,继续试着查找logback-test.xml文件;
3.当没有找到时,继续试着查找logback.xml文件;
4.如果仍然没有找到,则使用默认配置(打印到控制台)。
创建LogbackDemo.java用于测试,代码如   

public class LogbackDemo {
    private static Logger logger = LoggerFactory.getLogger(LogbackDemo.class);

    public static void main(String[] args) {
        /**
         * 生产环境只能打印info,warn,error级别的日志,
         * 不能打印trace,debug级别的日志
         */
        logger.trace("<--trace-->");
        logger.debug("<--debug-->");
        logger.info("<--info-->");
        logger.warn("<--warn-->");
        logger.error("<--error-->");

        String name = "winner_0715";
        //打印变量,注意,{}绝不能省
        logger.info("Hello,{}!", name);

        String message = "logback";
        //禁止用String的"+"来输出字符串
        //所以这一种不推荐
        logger.info("Hello," + name + ",欢迎使用" + message);
        //推荐使用的方式
        logger.info("Hello,{},欢迎使用{}", name, message);

        String[] fruits = {"apple", "banana"};
        // 可以传入一个数组,结果为"Fruit:  apple,banana"
        logger.info("Fruit:{},{}", fruits);

    }
}

执行结果:

16:51:29.336 [main] DEBUG com.winner.log.LogbackDemo - <--debug-->
16:51:29.339 [main] INFO com.winner.log.LogbackDemo - <--info-->
16:51:29.339 [main] WARN com.winner.log.LogbackDemo - <--warn-->
16:51:29.339 [main] ERROR com.winner.log.LogbackDemo - <--error-->
16:51:29.339 [main] INFO com.winner.log.LogbackDemo - Hello,winner_0715!
16:51:29.340 [main] INFO com.winner.log.LogbackDemo - Hello,winner_0715,欢迎使用logback
16:51:29.340 [main] INFO com.winner.log.LogbackDemo - Hello,winner_0715,欢迎使用logback
16:51:29.340 [main] INFO com.winner.log.LogbackDemo - Fruit:apple,banana

由此可见,日志是遵守一定格式的,但是我们并没有写配置文件,所以使用的是默认配置。

默认格式:时间(精确到毫秒)+ 线程名称 + log级别 + 类名 + log信息

从代码里可能只看得出来使用了slf4j,其实是使用了logback的jar包的

仅仅使用slf4j的jar包无法完成日志功能。

原文地址:https://www.cnblogs.com/winner-0715/p/5837176.html