SoringBoot日志详解

本文探讨了市场上的日志框架,如JUL、JCL、logback等,并重点介绍了SLF4j与logback在SpringBoot中的应用。讨论了如何在SpringBoot中统一日志记录,以及如何排除其他日志框架,使用SLF4j的实现。

市场上的日志框架

市场上的日志框架有很多,比如JUL,JCL,Jboss-logging,logback,log4j,log4j2,slf4j等。

这些日志主要分为两个部分:

  • 日志门面(日志的抽象层):JCL,SLF4j,Jboss-logging
  • 日志实现:log4j,log4j2,logback,JUL

而在SpringBoot中,最终我们会选择SLF4j和logback这样的组合。

SLF4j的使用

在日常开发的时候,日志记录方法的调用,不应该直接调用日志的实现类,而是调用日志抽象层里面的方法。
在使用SLF4j之前需要导入SLF4j的jar和logback的实现jar。

示例:

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

但是在SpringBooot中会遇到如下问题:某个a项目使用的是slf4j+logback模式,但是项目中Spring使用的是commons-logging日志,Hibernate使用的是Jboss-logger。所以有时候我们需要统一日志记录
在这里插入图片描述
总结:

  1. 将系统中其他日志框架先排除出去
  2. 用中间包来代替原来的日志框架
  3. 在导入slf4j的其他实现

SpringBoot日志关系

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

SpringBoot使用它来做日志功能。

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

在这里插入图片描述

总结:

  1. SpringBoot底层也是使用SLF4j和logback的方式进行日志记录。
  2. SpringBoot也会把其他的日志文件都替换成了SLF4j。
  3. 也使用了中间替换包
  4. 如果需要引入其他的日志框架,一定要把这个框架的默认日志文件依赖移除掉。

示例:

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

日志文件的编写

logging.level.com.learn=trace      #设置显示日志的等级

#不指定路径则在当前项目下生成springboot.log日志
#也可以指定完整的路径
logging.file.name=E:/springboot.log

#在当前磁盘的根路径下创建spring文件夹和里面的log文件夹,使用spring.log作为默认文件
logging.path=/spring/log

#在控制台输出日志的格式
logging.pattern.console=%d{yyyy-mm-dd}[%thread]%-5level %logger{50} -%msg%n



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值