在项目的开发中,日志是必不可少的一个记录事件的组件,所以也会相应的在项目中实现和构建我们所需要的日志框架。

而市面上常见的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等,我们该如何选择呢?

通常情况下,日志是由一个抽象层+实现层的组合来搭建的。

日志-抽象层 日志-实现层
JCL、SLF4J、jboss-logging jul、log4j、log4j2、logback

而SpringBoot机智的选择了SLF4J+Logback的组合,这个组合是当下比较合适的一组(log4j2其实很厉害,但是太厉害导致我驾驭不了~)

SLF4J使用

当我们在使用SpringBoot时,同样可能还会调用其他的框架,比如:Spring+Mybatis等等,这些框架中都有自己底层的日志框架在使用,所以,我们需要在引用的同时,将他们的日志框架排除掉即可,如下:

(截取模糊,凑合看先~)

1.  按照默认的配置,我们来写个测试类看一下:

可以看到,日志只输出了info、warn、error。也就是说SpringBoot默认是设置info级别。

那么,按照我们的需要,要如何修改这个日志输出级别呢?如下,按照你需要的可以配置,输出在控制台的日志的输出级别,一般情况下只需要默认即可。

logging.level.com.atguigu=trace

2.配置日志生成的路径及日志名称

在项目的运行中,我们不可能一直看着控制台,而且日质量会很大,转瞬即逝的~

那么,我们需要指定我们需要的日志名称以及日志生成的路径,用到两个配置,都是在application.properties/yml中写,如下:(都不设置的话,不生成日志)

# 按照默认的名称spring.log,生成到指定路径及日志。
logging.path=output/logs
# 不指定的情况下默认生成在项目根目录,按照配置生成所需的日志名称
logging.file=D:/ooodin.log

3.日志的格式配置

首先来看默认输出的格式:

# %d-时间格式、%thread-线程、%-5level-从左5字符宽度、%logger{50}-日志50个字符、%msg-信息、%n-换行
# 修改在控制台输出的日志格式
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} -%msg%n
# 修改输出到文件的日志格式
logging.pattern.file=%d{yyyy/MM/dd} === [%thread] == %-5level == %logger{50} == %msg%n

输出:

4.配置自定义log信息

如果想用自己的log配置,不用系统默认的,那么只需要按照官方要求,将该配置文件放在所需类的目录下即可,也可以在resource中配置全局的。

然而官方推荐我们在这些命名中,使用带有spring的扩展名,它会被SpringBoot框架识别(不写的单会被日志框架识别),并且可以使用其相应的功能,比如根据环境来使用某段配置:

这是官方的图~

更多日志的配置及应用,后边我们再议~

SpringBoot日记——日志框架篇的更多相关文章

  1. SpringBoot与日志框架2(日志内斗)

    一.SpringBoot如何引入slf4j+logback框架的呢? 在POM文件中 <dependency> <groupId>org.springframework.boo ...

  2. SpringBoot与日志框架1(基本使用)

    一.日志框架 1.无论在什么系统,日志框架都是一个重要角色,所以理解和用好日志框架是相当重要的:像JDBC一样,日志框架分为接口层的门面和具体的实现组成. 2.市面上的产品: 2.1门面:SLF4J( ...

  3. Spring Boot 揭秘与实战(三) 日志框架篇 - 如何快速集成日志系统

    文章目录 1. 默认的日志框架 logback2. 常用的日志框架 log4j 1.1. 日志级别 1.2. 日志文件 3. 源代码 Java 有很多日志系统,例如,Java Util Logging ...

  4. Springboot日记——核心编码篇

    背景吐槽:想要让自己进阶一下,一定要有个可以拿出来秀的东西,所以要尝试写一个属于自己的网站或者平台.因此,我大概的看了一下springboot+Mybatis-plus+... 框架介绍 通常 SSM ...

  5. SpringBoot整合日志框架LogBack

    日志可以记录我们应用程序的运行情况,我们可以通过日志信息去获取应用程序更多的信息.常用处理java日志的组件有:slf4j.log4j.logback.common-logging等.其中log4j是 ...

  6. Springboot入门-日志框架配置(转载)

    默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台. Logback是log4j框架的作者开发的新一代日志框架,它效率更高.能够适应诸多的运行环境,同时天然支 ...

  7. springboot的日志框架slf4j (使用logback输出日志以及使用)

    1.为什么使用logback? ——在开发中不建议使用System.out因为大量的使用会增加资源的消耗.因为使用System.out是在当前线程执行的,写入文件也是写入完毕之后才继续执行下面的程序. ...

  8. SpringBoot日记——Web开发篇

    准备开始实战啦!~~~~ 我们先来看,SpringBoot的web是如何做web开发的呢?通常的步骤如下: 1.创建springboot应用,指定模块: 2.配置部分参数配置: 3.编写业务代码: 为 ...

  9. SpringBoot日记——Cache缓存篇

    通常我们访问数据的情况如下图,数据存缓存就取缓存,不存缓存就取数据库,这样可以提升效率,不用一直读取数据库的信息: 开始记录: 关于SpringBoot缓存的应用 1. 首先在pom.xml文件中添加 ...

随机推荐

  1. 安全预警-防范新型勒索软件“BlackRouter”

    近期,出现一种新型勒索软件“BlackRouter”,开发者将其与正常软件恶意捆绑在一起,借助正常软件的下载和安装实现病毒传播,并以此躲避安全软件的查杀.目前,已知的被利用软件有AnyDesk工具(一 ...

  2. D:\hunting2014\小题目\字符串倒序

    #include<stdio.h>#include<string.h> char *revert(char *str){ char temp; char *p = str; c ...

  3. java StringBuilder案例

    实现输出字符串的长度,容量(容量不够则扩容),及内容 import java.util.Arrays; public class MyStringBuilderDemo { //任务:存储字符串并输出 ...

  4. IOS的滑动菜单(Sliding Menu)的具体写法(附代码)

    滑动菜单是一个很流行的IOS控件 先上效果图:        这里使用github的JTReveal框架来开发,链接是https://github.com/agassiyzh/JTRevealSide ...

  5. 批量删除Redis中的数据

    测试环境上是docker安装的redis,生产上使用的是阿里云Redis服务,需要批量清理生产上的数据. 阿里云提供了BS结构的工具管理Redis,但是不能全选批量删除,只能脚本删除,方法是在测试环境 ...

  6. Spring-IOC BeanFactory运行时动态注册bean

    在spring运行时,动态的添加bean,dapeng框架在解析xml的字段时,使用到了动态注册,注册了一个实现了FactoryBean类! 定义一个没有被Spring管理的Controller pu ...

  7. gcd?人生赢家!

    题目背景 原创:b2019dy gcd是一个热爱游戏的人 题目描述 gcd最近在玩一个有趣的游戏 我们把这个游戏抽象成一张图,图上有n个点,我们需要寻找总计m件宝物,它们分布在图上,对于每件宝物而言, ...

  8. Jenkins + GitLab 通过 Webhook 自动触发构建爬坑记录

    前言   在局域网搭建了一个Jenkins服务,用于自动构建和发布,在调通了构建程序之后,想使用内网的GitLab的Webhook功能触发代码推送事件,然后进行自动构建.后来发现在GitLab上做测试 ...

  9. 通过应用程序域AppDomain加载和卸载程序集

    微软装配车的大门似乎只为货物装载敞开大门,却将卸载工人拒之门外.车门的钥匙只有一把,若要获得还需要你费一些心思.我在学习Remoting的时候,就遇到一个扰人的问题,就是Remoting为远程对象仅提 ...

  10. STM32中用 stop 模式 配合低功耗模式下的自动唤醒(AWU) 能否实现FreeRTOS tickless 模式

    已经实现  ,2018年11月17日11:56:42,具体 如下: 第一步 : 修改 void vPortSetupTimerInterrupt( void ) 函数 ,修改原来的 systick 定 ...