SpringBoot入门(4)-日志框架

1. 常见的日志框架

日志门面(抽象层)日志实现
slf4j,JCL,JBoss-logginglog4j,log4j2,Logback,JUL

从上面的 抽象层中选一个,再从实现中选一个,组成一个完整的日志;
日志门面的选取:JCL是一款14年就不再更新了的,JBoss-logging我就不是很清楚缺陷了,网上也没有太多的介绍;

日志门面选择slf4j,日志实现选择logback;

2. 将所有的框架全部使用slf4j作为日志框架


由于每一个框架都有他自己的核心包,这时候如上图,可以将一些核心包替换成slf4j中的包,这样就可以在不同的框架中使用slf4j;
一:即先将原先日志框架先去除;
二:再将slf4j中的中间包替换掉原有框架;
三:使用slf4j完成自己需要的日志的实现;

以上就是实现统一日志的思想;


3. SpringBoot中的日志

在SpringBoot中日志一般是由spring-boot-start-logging负责,如下图;

可以直接从这里跳转到详细的依赖位置,找到具体的依赖;

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-logging</artifactId>
      <version>2.3.3.RELEASE</version>
      <scope>compile</scope>
    </dependency>


这里面还有两个依赖,jul-to-slf4j,log4j-to-slf4j,这就是最开始介绍的日志框架统一所需要的几个jar包;SpringBoot自带了;

4. 日志的简单使用

由于SpringBoot已经默认打开了日志,所以我们可以直接使用;(从上面的那个依赖图中就可以看到日志框架了);

class SpringConfigDemoApplicationTests {
    //定义一个日志对象;
    Logger logger = LoggerFactory.getLogger(getClass());
    @Test
    void contextLoads() {
    //下面是日志输出的一些方式;
    logger.trace("第一个trace");
    logger.info("info信息");
    logger.debug("debug信息");
    logger.warn("debug信息");
    logger.error("error信息");
    }
}

除此之外,在配置文件中也可以使用一些配置,对日志的输出位置,多少,详细等进行修改;

#设置日志最接受时的最低权限,默认的话时root,也就是所有的信息全部显示;
logging.level.cn.dxs.spring_config_demo=debug
#指定日志输出的文件位置
#除了下面的,还可以使用logging.file.name(会在当前工程下创建一个日志文件)
#logging.file.path会在当前工程下创建一个logging的目录,然后自己创建一个Spring.log的文件
#这里面的spring.log文件是没法换的,至少设置路径没有用,应该是个固定的默认路径;
logging.file.path=logging
#将日志按自己的格式输出;
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} -%msg %n

在其中,关于输出格式有这几种写法;

%d:意味着日期时间,比如yyyy-MM-dd HH:mm:sss,年月日,时分秒;
%thread:表示当前的线程名;
%-5level:表示级别从左显示5个字符的宽度
%logger(50):表示最多显示logger的最长名字是50;
%msg:表示日志信息;
%n:表示换行符; 

运行的结果:(只看控制台)

介绍了这么多如何修改配置,那么基本配置到底在哪里?
首先我目前是以2.3.3为基础,所以可以先找到这么一个依赖org.springframework.boot:spring-boot2.3.3.RELEASE;在这个依赖下面的org.springframework.boot里面有一个logging的文件夹;如下图,base.xml是它的基本配置;

下面是default.xml的内容:

简单的就从上面两张图就可以看出,不仅默认输出是控制台,而且还有它自己的输出格式,基本输出的级别也是info;文件保存日志的时候默认是最大10MB;

4.1 如何使用自定义的日志配置文件

我也去官网转了一下,如果需要使用自定义的配置文件,那么可以如下命名,放置的位置可以放在资源文件(resource)下:


而且官方文档推荐的是使用名字带有spring的配置文件名,简单的解释就是使用带有spring配置文件的名字拥有的功能会更加多,比如<springProfile name="">,和前面介绍的profile环境类似,也是根据不同的环境执行不同的代码;
官方文档的配置更多
至于说到自定义的配置文件,讲实话没有两把刷子,我还是去网上找吧,但是实际上官方文档里面的大部分配置都是可以写的;

5. 切换日志框架

就是将slf4j的依赖去除,然后添加其它的日志框架依赖,并且将这些日志框架需要的配置文件放在资源(resource)文件夹下;这样的话就可以了;到时候日志框架会自动加载自己需要的配置文件;

上面那张图是SpringBoot内嵌的一些日志框架(启动器),默认的是slf4j+logback;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神秘的天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值