前言:
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><!--日志文件最大的大小 --><triggeringPolicyclass="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);@Testpublic 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