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

前言:

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 {
	
	@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

猜你喜欢

转载自blog.csdn.net/qq_37936542/article/details/80839389