日志框架
市场上存在非常多的日志框架。
JUL(java.util.logging),JCL(Apache Commons Logging)、Log4j、Log4j2、Logback、SLF4j、jboss-loging等。
Spring Boot在框架内部使用JCL、spring-boot-starter-logging采用了slf4j+logback的形式,Spring Boot也能自动适配(jul、log4j2、logback)并简化配置。
日志门面:日志的抽象层日志实现:日志的实现层
Spring Boot底层是Spring,使用的日志框架是JCL
此处,Spring Boot选用SLF4j+Logback
SLF4j的使用
1.如何在系统中使用SLF4J日志框架(抽象层)
在开发的时候,日志记录方法的调用,应该先调用抽象层里面的方法,然后由抽象方法调用日志的实现类;给项目里面导入SLF4j的jar和logback的jar包
每一个日志框架够用自己的配置的文件,使用SLF4j之后,配置文件还是做成日志实现框架本身的配置文件。
2.遗留问题
(SLF4j+logback):spring(JCL)、hibernate(jboss-logging)、mybatis…1.统一日志框架,即使使用的是别的的框架也要统一成SLF+logback日志框架
如何让项目中的所有日志框架统一(见上图)
① 将项目中其他框架的日志框架先排除
② 用中间包代替原来的日志框架
③ 导入SLF4j的其他实现
3.Spring Boot的日志关系
SpringBoot底层也是使用的SLF4J+logback的实现日志记录SpringBoot在底层把其他jar包转换成了SLF4J中间替换包4.默认的日志配置
如果要引入其他框架,首先要移除这些框架说依赖的日志jar
Spring Boot能自动适配所有的日志,而且底层使用的是SLF4J+logback的方式记录,如果要引入其他框架首先要把引入的框架的日志框架移除,换成中间件日志的使用
而SpringBoot已经默认配置好了日志框架
@RunWith(SpringRunner.class)@SpringBootTestpublic class SpringBootLogApplicationTests {/*** 日志的级别* 从低到高* trace->debug->info->warn->error* 可以调整输出日志级别:日志级别只会输出这个级别以后的级别*///记录器Logger logger=LoggerFactory.getLogger(getClass());@Testpublic void contextLoads() {logger.trace("这是trace日志....");logger.debug("这是debug日志...");//Spring Boot默认的日志级别是info--如果没有指定级别,SpringBoot会使用默认的级别infologger.info("这是info日志");logger.warn("这是warn日志");logger.error("这是error日志");}}
测试:
修改日志级别
在properties配置文件中:
.zhumengkj=trace
再测试:
日志默认配置
日志的配置主要有三个
logging.file日志文件名logging.path日志目录Example日志文件
注意:实际开发中不会使用loggingfile,会常用logging.path
logging.file
在properties配置文件中:
#指定日志界别为trace 不指定则默认为.zhumengkj=trace#当前项目下生成springboot.log日志文件logging.file=springboot.log
运行测试:
也可以指定路径
#也可以指定路径logging.file=C:/Users/zYu/Desktop/springboot.log
logging.path
#也可以指定路径#logging.file=C:/Users/zYu/Desktop/springboot.log#在当前磁盘的根路径下创建spring文件夹下创建log文件夹,使用默认spring.log文件接收日志logging.path=/spring/log
指定输出格式
日志输出的格式:
在properties配置文件中添加:
#指定在控制台的输出格式logging.pattern.console=>>>%d{yyyy-MM-dd HH:mm:ss.SSS}>>>>>[%thread]>>>>>%-5level>>>>>%logger{50}>>>>>%msg%n#指定在文件中输出的格式logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS}=====[%thread]=====%-5level=====%logger{50}=====%msg%n
运行测试
查看控制台:
查看日志文件:
5.指定日志配置文件
指定配置
在类路径下新建相关日志自己的配置文件,Spring Boot在检索到此文件时就不会再使用默认的配置文件了。
logback.xml:直接被框架识别
logback-spring.xml:日志框架就不直接加载日志的配置项,由Spring Boot解析日志配置,可以使用Spring Boot的高级profile功能。