SpringBoot 日志处理

SpringBoot选用slf4j和logback,slf4j作为通用接口门面,而logkack是具体的实现。

在开发过程中,日志记录方法的调用,不应该直接调用日志的实现类,而是调用日志抽象层里面的方法。需要导入slf4j的jar和locback的实现jar

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}

slf4j与不同具体日志实现框架集成
在这里插入图片描述

每一个日志的实现框架都有自己的配置文件,使用slf4j以后,配置文件还是使用实现框架的配置文件。

统一日志
对于系统中使用多个框架,比如Spring,hibernate等,他们自己都有相关的日志实现方式,Spring采用commons-logging,hibernate使用jboss-logging,现在想要使用slf4j+logback的形式统一记录日志。
在这里插入图片描述

如何将系统中所有的日志都统一到slf4j:
1、将系统中其他日志框架先排除出去
2、用中间包来替换原有的日志框架
3、导入slf4j其他的实现

SpringBoot使用slf4j:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter</artifactId>
</dependency>

底层依赖关系
在这里插入图片描述

总结:
1、SpringBoot底层也是使用slf4j+logback的方式进行日志记录
2、SpringBoot把其他日志都替换成了slf4j
3、采用中间替换包的形式
在这里插入图片描述

4、如果要引入其他的框架,那么必须把引入框架的日志依赖移除,例如SpringBoot会引入Spring框架,Spring使用commons-logging记录日志,在引入依赖时,SpringBoot将日志依赖排除。

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-core</artifactId>
   <exclusions>
      <exclusion>
         <groupId>commons-logging</groupId>
         <artifactId>commons-logging</artifactId>
      </exclusion>
   </exclusions>
</dependency>

SpringBoot能自动适配所有的日志,而底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要将这个框架依赖的日志框架排除掉即可。

SpringBoot默认已经配置好了日志,可以直接使用

public void testLogger(){
    Logger  loger =  LoggerFactory.getLogger(SpringBoot_test.class);
    loger.trace("this is trace logger");
    loger.debug("this is debuger logger");
    loger.warn("this is warn logger");
    loger.info("this is info logger");
    loger.error("this is error logger");
}

日志输出级别:trace<debug<info<warn<error。可以调整输出的日志级别,日志只会在这个级别及以后的高级别生效,默认是info级别的,可以在配置文件中使用

logging.level.具体包名=日志级别

//在E盘下创建Spring文件夹和里面的log文件夹,使用spring.log作为默认文件
logging.path=E:/spring/log

//当前项目下生成springboot.log,可指定具体位置,如E:/springboot.log,表示在E盘下
//会存放springboot的日志,并且名字为springboot.log
logging.file=springboot.log   

//设置控制台输出格式
logging.patter.consle

//设置文件中日志的格式
logging.patter.file

logging.path和logging.file只需要配置一个就可以了,一般配置path。

在这里插入图片描述

指定配置文件,给类路径下放入每个日志框架自己的配置文件即可,SpringBoot就不使用它默认的配置。

Logging SystemCustomization
Logbacklogback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
Log4j2log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging)logging.properties

没有带后缀的,如logback.xml是日志系统自己识别加载,而带了spring后缀的,则由SpringBoot加载,可以实现一些高级功能,如profile,指定某段配置只在特定环境下生效。激活方式同之前配置文件的profile形式

<springProfile name="staging">
	<!-- configuration to be enabled when the "staging" profile is active -->
</springProfile>

<springProfile name="dev | staging">
	<!-- configuration to be enabled when the "dev" or "staging" profiles are active -->
</springProfile>

<springProfile name="!production">
	<!-- configuration to be enabled when the "production" profile is not active -->
</springProfile>

SpringBoot默认的日志启动器有两个
spring-boot-starter-log4j2
spring-boot-starter-logging
默认使用starter-logging,使用slf4j+logback
如果需要切换,只需要排除starter-logging,添加starter-log4j2依赖即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值