参考logback官方文档,地址为https://logback.qos.ch/manual/configuration.html;
一、用IntelliJ IDEA新建maven项目;
二、导入jar包:logback-classic-1.2.3.jar,logback-core-1.2.3.jar,slf4j-api-1.7.26.jar。pom.xml添加如下的dependency
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.26</version>
</dependency>
三、resources目录下新建logback-text.xml文件,内容如下:
<configuration>
<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
<!-- in the absence of the class attribute, it is assumed that the
desired discriminator type is
ch.qos.logback.classic.sift.MDCBasedDiscriminator -->
<discriminator>
<key>userid</key>
<defaultValue>default</defaultValue>
</discriminator>
<sift>
<appender name="FILE-${userid}" class="ch.qos.logback.core.FileAppender">
<file>${userid}.log</file>
<append>true</append>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d [%thread] %level %mdc %logger{35} - %msg%n</pattern>
</layout>
</appender>
</sift>
</appender>
<root level="DEBUG">
<appender-ref ref="SIFT" />
</root>
</configuration>
四、java目录下新建java类:MyApp4.java
package chapters.configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
public class MyApp4 {
final static Logger logger = LoggerFactory.getLogger(MyApp4.class);
public static void main(String[] args) {
logger.debug("application access");
MDC.put("userid", "Alice");
logger.debug("Alice says hello");
logger.debug("Alice do ........");
logger.debug("Alice says goodbye");
}
}
五、运行MyApp4.java,运行结果如下图所示