终于空出时间针对前期使用的技术进行梳理,17年下半年开始,一直忙于项目接口开发工作,完全没时间进行技术梳理,springboot构建微服务项目,是针对早期的struts1 + ibatis项目进行重构,终归是上线使用了十年的老项目,各种业务场景复杂,在项目构建过程中发现springboot日志打印和传统配置方式不同,话不多说,先简单介绍一下springboot如何配置日志打印:
说道日志配置,针对线上项目可谓重中之重,没有了日志,查问题简直让人想死!由于使用了springboot,那该怎么配置日志呢?
首先发现配置日志有如下几种方式:
1、在application.properties中添加配置,
如logging.level.root=debug,添加配置级别,logging.level.org.springframework.web=debug打印spring的jar日志,但这种方式配置的日志比较粗糙;
下面着重介绍另一种方式
2、由于springboot采用约定优先于配置的方式,日志文件也是,SpringBoot项目中在官方文档中(https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html)说明,默认已经依赖了一些日志框架。而其中推荐使用的就是Logback,说明一下,SpringBoot已经依赖了Logback所以不需要手动添加依赖,如下文档中说明:
测试过程中发现如何使用logback.xml,在application.properties中一些配置会不生效,查看springboot文档发现
最根本的原因: 即,logback.xml加载早于application.properties,所以如果你在logback.xml使用了变量时,而恰好这个变量是写在application.properties时,那么就会获取不到,只要改成logback-spring.xml就可以解决。
那如何配置logback-spring.xml文件打印想要的日志呢,
(1)首先建立该文件,放到src下面的resource目录下,springboot就会自动扫描加载,如图
(2) 完成配置样本如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- create by ice 2017-09-20 start -->
<configuration>
<contextName>SpringBootLogbacK</contextName>
<property name="LOG_PATH" value="./" />
<!