当前位置: 代码迷 >> 综合 >> slf4j+logback实现web项目日志输出
  详细解决方案

slf4j+logback实现web项目日志输出

热度:104   发布时间:2023-11-30 19:52:51.0

前言:

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

  相关解决方案