1.先上logback-spring.xml的配置文件
其中%X{cname}是占位符 cname的值是通过MDC设置进去的,不用可以去掉
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds" debug="false">
<include resource="org/springframework/boot/logging/logback/base.xml" />
<contextName>logback</contextName>
<property resource="${spring.profiles.active}/system.properties"/>
<!-- 控制台日志配置-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{cname}] %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--输出文件日志配置 debug -->
<appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logback.out.path}/%d{yyyy-MM-dd}/logback-debug.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>${logback.out.max.history}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%X{cname}] %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<!--控制日志级别 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--输出文件日志配置 info-->
<appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logback.out.path}/%d{yyyy-MM-dd}/logback-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>${logback.out.max.history}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%X{cname}] %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 按 级别输出 文件-->
<root level="INFO">
<appender-ref ref="stash"/>
<appender-ref ref="console" />
<appender-ref ref="debug" />
<appender-ref ref="info" />
</root>
<!-- 日志包名划分等级配置-->
<logger name="com.joefany.test" level="${logback.level}"></logger>
</configuration>
2.mavan依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>0.1.4</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.12</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
3.web.xml配置监听
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>classpath:logback-spring.xml</param-value>
</context-param>
<listener>
<listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
</listener>