前言:
Logback 是 Log4j 作者 Ceki 的又一个日志框架,可以说Logback是log4j升级后的一款产品,功能、效率等方面都优于log4j。大名鼎鼎的SpringBoot默认使用的日志框架就是slf4j+Logback。
一:导入相关依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
二:创建logback.xml文件
编辑logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE xml>
<configuration scan="true" scanPeriod="1800 seconds"
debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property name="LOG_HOME" value="${catalina.base}/logs/" />
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 设置编码和输出格式-->
<encoder>
<charset>UTF-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -
%msg%n
</pattern>
</encoder>
</appender>
<!-- 文件输出:按照每天生成日志文件 -->
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 设置编码和输出格式 -->
<encoder charset="UTF-8">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -
%msg%n
</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>logFile.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
三:测试
package wxApp;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestController {
//private static Logger log = LoggerFactory.getLogger(TestController.class);
@Test
public void testLog(){
Logger log = LoggerFactory.getLogger(this.getClass());
log.trace("这是trace日志。。。");
log.debug("这是debug日志。。。");
log.info("这是info日志。。。");
log.warn("这是warn日志。。。");
log.error("这是error日志。。。");
}
}
控制台日志输出:因为日志级别设置的是info,所以只有三个输出
文件日志输出:
slf4j+log4j实现日志记录:https://blog.csdn.net/qq_37936542/article/details/79045188