Spring Boot学习笔记(4)——SpringBoot日志配置

springboot默认采用的是 slf4j+logback 的组合形式,日志抽象层是 slf4j,日志实现层是 logback,Spring Boot也提供对JUL、log4j2、Logback提供了默认配置。

SpringBoot默认日志配置

1、SpringBoot默认配置好了日志, 只要启动 Spring Boot 项目就会在控制台输出日志信息。

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootLoggingApplicationTests {
	//日志记录器
	Logger logger = LoggerFactory.getLogger(getClass());
	
	@Test
	public void contextLoads() {
		/**
		 * 1、日志信息的级别:trace < debug < info < warn < error
		 * 2、springboot默认的日志信息级别时info级别,也就是日志 root 级别是 info级别,root级别是什么,则只会打印 大于等于 root级别的日志信息
		 * 3、可以在 application.properties 配置文件中修改当前项目的pacakge的 root 级别,没有修改则默认使用springboot默认的root级别
		 * 4、也可以在 application.properties 修改 当前项目的 root 级别,这样就就修改了项目引入的 jar 包的 root级别
		 */
		logger.trace("这是 trace 日志信息");
		logger.debug("这是 debug 日志信息");
		logger.info("这是 info 日志信息");
		logger.warn("这是 warn 日志信息");
		logger.error("这是 error 日志信息");
	}
}

2、修改默认日志配置的root级别,在全局配置文件 application.properties 中修改

#修改当前项目的 package 下面的的日志级别
logging.level.com.dss.springboot=debug

#修改整个项目的 root 级别,会影响项目引入的 jar 包的日志级别,所以一般在项目中只修改 当前项目的 pacakge 下的root级别
logging.level.root=debug

3、修改默认日志配置:
1)、修改日志文件的输出路径:
可以在 application.properties 配置文件中进行配置,具体 枚举 如下:
在这里插入图片描述

#指定日志输出到哪个文件中,指定之后,会在输入日志到当前项目的根路径下的 springboot.log 文件中(这个文件名可以自己指定)
#如果指定的 文件不存在,则会自动创建文件,如果指定的文件存在,则会将日志信息 追加 到已有的文件中
#这个配置也可以指定日志文件输出到 某个目类下,如: logging.file=E:/springboot.log
logging.file=springboot.log

#指定日志输出到哪个 path 下,这里日志会默认输出在 文件名 为 spring.log 的文件中
#指定path后,日志会输入出当前项目所在的磁盘根路径下,例如:项目在D盘的一个文件夹中,则会在D盘根目录下创建一个 /springboot/log 的文件夹,里面有 spring.log 文件
logging.path=/springboot/log

2)、修改日志的输出格式:

# 日志输出格式说明:
# 	%d 输出日期时间,
# 	%thread 输出当前线程名,
# 	%-5level 输出日志级别,左对齐5个字符宽度
# 	%logger{50} 输出全类名最长50个字符,超过按照句点分割
# 	%msg 日志信息
# 	%n 换行符

#修改控制台输出的日志格式(不会改变写入到 日志文件 中的日志格式)
logging.pattern.console=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} - %msg%n

#修改输入到日志文件中的 日志格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} >>> [%thread] >>> %-5level >>> %logger{50} >>> %msg%n
自定义springBoot日志配置

1、要采用自定义的日志配置,如果采用的是 logback 日志,则需要在 类路径 下加上 logback.xml 或者 logback-spring.xml 文件;当在 类路径下加上 logback.xml 文件后,SpringBoot就不会使用它默认的日志配置文件
2、在 resources 目录下创建 logback.xml,文件内容与 平常的日志配置文件 logback.xml一样
3、启动项目之后,logback.xml就会直接被日志框架加载
4、也可以创建 logback-spring.xml 配置文件,配置项不会被日志框架直接加载,而是由 SpringBoot 解析日志配置文件,进而可以使用 SpringBoot 的 Profile 特殊配置,例如:
1)、把 logback.xml 重命名为 logback-spring.xml,之后在文件内容里找到输出到控制台的日志格式:修改为:

<!-- ch.qos.logback.core.ConsoleAppender 表示控制台输出 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
	<!-- 日志输出格式说明: %d 输出日期时间 %thread 输出当前线程名 %-5level 输出日志级别,左对齐5个字符宽度 %logger{50} 
		输出全类名最长50个字符,超过按照句点分割 %msg 日志信息 %n 换行符 -->
	<layout class="ch.qos.logback.classic.PatternLayout">
		<!--如果启动的prifile是开发环境,则使用这个日志输出格式-->
		<springProfile name="dev">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} === [%thread] === %-5level ==== %logger{50} - %msg%n</pattern>
		</springProfile>
		<!--如果启动的prifile是不是开发环境,则使用这个日志输出格式-->
		<springProfile name="!dev">
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} >>> [%thread] >>> %-5level >>> %logger{50} - %msg%n</pattern>
		</springProfile>
	</layout>
</appender>

2)、在 application.properties 配置文件中,通过 spring.profiles.active = xxx,来配置启动的是哪个prifile,就可以控制不同的日志输出格式
5、注意: Spring的Profile特殊配置,只能在logback-spring.xml文件中配置,如果自定义日志配置文件是 logback.xml,加上 springProfile 标签后,启动项目就会报错。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章