注意:

使用 Maven + SpringMVC

首先我们讲讲 logback 与 log4j 的关系

  1. log4j 是 apache 实现的一个开源日志组件
  2. logback 同样是由 log4j 的作者设计完成的,拥有更好的特性,用来取代log4j 的一个日志框架。

模块划分

logback-core
logback的核心模块
logback-classic
它是 log4j 的一个改良版本,同时它完整实现了 slf4j API 使你可以很方便地更换成其它日志系统如 log4j 或 JDK14 Logging
logback-access
访问模块与 Servlet 容器集成提供通过 Http 来访问日志的功能

logback 是 log4j 的优化版,它的优点我们稍微举例一下,
1. 更快的执行速度: 基于我们先前在 log4j 上的工作,logback 重写了内部的实现,在某些特定的场景上面,甚至可以比之前的速度快上10倍。在保证logback的组件更加快速的同时,同时所需的内存更加少。
2. logback-classic 非常自然的实现了 SLF4J:logback-classic中的 longging 类自然的实现了 SLF4J。当你使用 logback-classic 作为底层实现时,涉及到 LF4J日记系统的问题你完全不需要考虑。更进一步来说,由于 logback-classic 强烈建议使用 SLF4J 作为客户端日记系统实现,如果需要切换到 log4j 或者其他,你只需要替换一个 jar 包即可,不需要去改变那些通过SLF4J API 实现的代码。这可以大大减少更换日记系统的工作量

整合

首先引入依赖

1. pom.xml

Pom.xml 在 SpringMVC 基本依赖之上需要加入的依赖如下:

 <!-- logback日志配置开始 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-access</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>

        <dependency>
            <groupId>org.logback-extensions</groupId>
            <artifactId>logback-ext-spring</artifactId>
            <version>0.1.5</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.25</version>
        </dependency>
         <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
  <!-- logback日志配置结束 -->

2. web.xml
<!-- 此配置是用来如果 logback 配置文件不是叫 logback.xml 且不再classpath目录下
                
    <context-param>
        <param-name>logbackConfigLocation</param-name>
        <param-value>
            classpath*:logback.xml
        </param-value>
    </context-param>
    <listener>
        <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
    </listener>
  -->

logback 会自动去查找 classpath 下的文件名叫 logback.xml 的文件
aa
ch.qos.logback.classic.util.ContextInitializer
源码如下:
bb

3. logback.xml 简单示例,如需更加详细的请网上查找 logback 配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration  debug="false">
    
    <!-- 控制台打印 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="utf-8">
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> 
        </encoder>
    </appender>
    
    <!-- Spring日志 -->
    <logger name="org.springframework" level="INFO"/>
    <logger name="com.zaxxer.hikari" level="INFO"/>
    <logger name="com.iot" level="INFO"/>
    <root level="DEBUG"> 
      <appender-ref ref="STDOUT" /> 
   </root> 
</configuration>

正常启动就ok了