SpringBoot深入了解日志的使用

目录
  • 1. 日志的作用
  • 2. 日志怎么用
  • 3. 自定义日志打印
    • 3.1 得到日志对象
    • 3.2 使用日志对象提供的方法打印日志
    • 3.3 日志格式说明
  • 4. 日志级别
    • 4.1 日志级别分类
    • 4.2 日志级别的配置
  • 5. 日志持久化
  • 6. 更简单的实现自定义日志的打印
    • 6.1 准备工作,添加 lombok 到项目中
    • 6.2 使用 @Slf4j 得到日志对象
    • 6.3 使用 log 对象自定义打印日志
    • 6.4 lombok 更多注解说明

1. 日志的作用

日志是程序的重要组成部分,在程序报错的时候,如果我们不看日志,是很难排查出错误的,除非你真的是很有经验.所以日志最主要的作用就是排除和定位问题.

日志提供的功能:

  • 记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。
  • 记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。
  • 记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持

2. 日志怎么用

在我们启动 SpringBoot 项目的时候就会输出日志:

3. 自定义日志打印

主要分两个步骤:

在一个类中先获得打印日志对象(日志框架提供的日志对象,而日志框架默认已经集成到 SpringBoot 里了)使用日志对象提供的方法实现日志的打印

3.1 得到日志对象

得到日志对象 Logger ,它来自于 slf4j,不要导错了包,在程序中获取⽇志对象需要使⽤⽇志⼯⼚ LoggerFactory

3.2 使用日志对象提供的方法打印日志

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@ResponseBody
public class UserController {
//1. 先得到日志对象(来自 slf4j)
    private static final Logger log =
        LoggerFactory.getLogger(UserController.class); //设置当前的类型
    @RequestMapping("/sayhi")
    public void sayHi(){
        //2. 使用日志对象提供的打印方法进行日志打印
        log.trace("我是 trace");
        log.debug("我是 debug");
        log.info("我是 info");
        log.warn("我是 warn");
        log.error("我是 error");
    }
}

有些没打印,因为他只会打印跟他同级别的或者比他级别高的日志,他这里默认是 info 级别.

3.3 日志格式说明

4. 日志级别

反馈一些需要的日志,并不需要把所有的都打印出来

就像是如果你是一家 2 万人的公司的老板,需要每天看他们的反馈信息,难道每个人都看吗?这显然看不完,你只需要看一些领头的就行…

4.1 日志级别分类

日志级别分为:

  • trace: 微量,少许的意思(级别最低)
  • debug: 调试日志
  • info: 普通信息日志
  • warn: 警告日志
  • error: 错误日志
  • fatal: 致命的日志(系统输出的日志,不能自定义打印)

日志级别的顺序:

越往上接收到的消息就越少。

4.2 日志级别的配置

⽇志级别配置只需要在配置⽂件中设置“logging.level”配置项即可:

# 设置全局的日志级别
logging.level.root=warn

# 设置局部文件夹的日志级别
logging.level.com.example.demo.UserController=trace

之前的 info 级别日志就没打印了.

注意:当存在局部日志级别和全局的日志级别设置时,那么当访问局部日志时,使用的是局部日志级别.也就是 局部日志优先级 > 全局日志级别

5. 日志持久化

以上的⽇志都是输出在控制台上的,然⽽在⽣产环境上咱们需要将⽇志保存下来,以便出现问题之后追溯问题,把⽇志保存下来的过程就叫做持久化。

日志持久化(将日志永久的保存到磁盘的某个位置)

1:在配置文件中设置日志保存的路径,当设置了保存路劲之后,那么日志就会自动进行持久化

2:在配置文件中设置日志保存的名称,日志会自动进行持久化

#设置日志保存的目录写法一
logging.file.path=D:\\log
#设置日志保存的目录写法二
logging.file.path=D:/log

打开这个文件:

# 设置日志的保存名称
logging.file.name=D:\\log\\spring-boot.log

6. 更简单的实现自定义日志的打印

6.1 准备工作,添加 lombok 到项目中

如果你当初没有添加 lombok 又不想重开项目,有这样一种办法,下载插件 EditStarters:

6.2 使用 @Slf4j 得到日志对象

import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@ResponseBody
@Slf4j //替代了之前需要通过 LoggerFactory.getLogger 操作
public class UserController {
//1. 先得到日志对象(来自 slf4j)
//    private static final Logger log =
//        LoggerFactory.getLogger(UserController.class); //设置当前的类型
    @RequestMapping("/sayhi")
    public void sayHi(){
        //2. 使用日志对象提供的打印方法进行日志打印
        log.trace("我是 trace");
        log.debug("我是 debug");
        log.info("我是 info");
        log.warn("我是 warn");
        log.error("我是 error");
    }
}

6.3 使用 log 对象自定义打印日志

.class文件,他是给我们转换了的:

Java 程序的运⾏原理:

Lombok 的作⽤如下图所示:

6.4 lombok 更多注解说明

注解 作用
@Getter ⾃动添加 getter ⽅法
@Setter ⾃动添加 setter ⽅法
@ToString ⾃动添加 toString ⽅法
@EqualsAndHashCode ⾃动添加 equals 和 hashCode ⽅法
@NoArgsConstructor ⾃动添加⽆参构造⽅法
@AllArgsConstructor ⾃动添加全属性构造⽅法,顺序按照属性的定义顺序
@NonNull 属性不能为 null
@RequiredArgsConstructor ⾃动添加必需属性的构造⽅法,final + @NonNull 的属性为必需

组合注解:

注解 作用
@Data @Getter + @Setter + @ToString +@EqualsAndHashCode +@RequiredArgsConstructor +@NoArgsConstructor

日志注解:

注解 作⽤
@Slf4j 添加⼀个名为 log 的⽇志,使⽤ slf4j

到此这篇关于SpringBoot深入了解日志的使用的文章就介绍到这了,更多相关SpringBoot日志内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用SpringBoot_jar方式启动并配置日志文件

    目录 SpringBoot_jar方式启动并配置日志文件 前言 1.测试环境和生产环境启动 2.利用shell启动并配置log日志 2.1.测试库启动 2.2.正式库启动 2.3.停止正在运行的项目 2.4.重启项目 Jar包后台启动并输出日志 例如 SpringBoot_jar方式启动并配置日志文件 前言 正常启动 ,下面会选择application.properties 中配置默认的启动文件进行启动,下面这种情况不能根据实际情况进行启动项目 java jar admin-1.0-SNAPSH

  • Springboot项目保存本地系统日志文件的实现方法

    背景:我们都知道springboot默认日志是打印在控制台中的,不会以文件的形式进行保存.那么日后系统上线肯定是有需要对日志进行定位分析问题的,那么如何实现将控制台输出的日志保存起来? 话不多说,实际效果如下,如果是你预期的那样,咱们接着往下看. 如果最后觉得有所帮助,请不要吝啬你的赞,直接pia的点亮就完事了啦,可好: 如下是集成,按步骤来: 1.在项目的resources目录下创建一个名为logback-spring.xml的日志配置文件,配置文件名最好跟我一样: 2.编写xml文件内容:

  • springboot+log4j.yml配置日志文件的方法

    一,Maven 依赖 pom.xml配置 1, 去掉默认日志,以便切换到log4j2的日志依赖 2, 然后添加如下两个日志依赖 二,在工程根目录下添加 lo4g2.yml 配置文件 2, 配置文件内容 <!-- 配置 log4j2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artif

  • 解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题

    application.properties 加入以下配置 #logback home logging.path=D:/logs/esb-producer logback.xml <property name="LOG_PATH" value="${LOG_PATH:- }" /> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.Rolling

  • Springboot之日志、配置文件、接口数据如何脱敏

    目录 一.前言 二.配置文件如何脱敏? 1. 添加依赖 2. 配置秘钥 3. 生成加密后的数据 4. 将加密后的密文写入配置 5. 总结 三.接口返回数据如何脱敏? 1. 自定义一个Jackson注解 2. 定制脱敏策略 3. 定制JSON序列化实现 4. 定义Person类,对其数据脱敏 5. 模拟接口测试 6. 总结 四.日志文件如何数据脱敏? 1. 添加log4j2日志依赖 2. 在/resource目录下新建log4j2.xml配置 3. 自定义PatternLayout实现数据脱敏 4

  • SpringBoot中通过AOP整合日志文件的实现

    目录 1.导入相关的依赖 2.log4j2 日志文件 3.dao层的接口以及实现类 4.Service层业务实现类 5.Controller层接口控制类 6.编写业务类增强类,加入一个日志文件记录 7.运行测试,查看结果 1.导入相关的依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter&

  • SpringBoot详细讲解日志文件

    目录 1 日志的功能是什么? 2 如何自定义日志打印 2.1 在程序中获取日志对象 2.2 调用日志对象打印日志 2.3 查看日志打印的结果 3 日志的级别 3.1 日志级别的分类 3.2 日志级别的设置 4 日志持久化 5 更简单的日志输出 5.1 添加 lombok 依赖 5.2 输出日志 5.3 lombok 更多的注解 1 日志的功能是什么? 如果程序报错了, 却不能从控制台查看日志, 那么就不知道错误的原因了. 日志的功能 : 快速的排查和定位问题 记录用户登录的日志 记录系统的操作日

  • Springboot整合log4j2日志全解总结

    在项目推进中,如果说第一件事是搭Spring框架的话,那么第二件事情就是在Sring基础上搭建日志框架,我想很多人都知道日志对于一个项目的重要性,尤其是线上Web项目,因为日志可能是我们了解应用如何执行的唯一方式. 在18年大环境下,更多的企业使用Springboot和Springcloud来搭建他们的企业微服务项目 ,此篇文章是博主在实践中用Springboot整合log4j2日志的总结. 常用日志框架 java.util.logging:是JDK在1.4版本中引入的Java原生日志框架 Lo

  • springboot配置logback日志管理过程详解

    这篇文章主要介绍了springboot配置logback日志管理过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 首先书写logback-spring.xml文件为: <?xml version="1.0" encoding="UTF-8"?> <configuration> <springProperty scope="context" name="

  • SpringBoot项目集成日志的实现方法

    SpringBoot使用Commons Logging进行所有内部日志记录,但保留底层日志实现.默认提供了Java Util Logging, Log4j2 和Logback日志配置.在每种情况下,都预先配置为使用控制台输出,并且还提供了可选的文件输出.(来自官网) 日志格式 SpringBoot默认的日志输出如下所示: 2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine :

  • SpringBoot整合log4j日志与HashMap的底层原理解析

    一,SpringBoot与日志 1.springboot整合log4j日志记录 1.在resources目录下面创建日志文件,并引入: 代码如下(示例): #log4j.rootLogger=CONSOLE,info,error,DEBUG log4j.rootLogger=info,error,CONSOLE,DEBUG log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=o

  • SpringBoot整合log4j2日志的实现

    关于日志级别 共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF. All: 最低等级的,用于打开所有日志记录. Trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出. Debug: 指出细粒度信息事件对调试应用程序是非常有帮助的. Info: 消息在粗粒度级别上突出强调应用程序的运行过

  • SpringBoot集成slf4j日志配置的方法

    目录 前言 1.slf4j概述 2.pom.xml的日志依赖 3.application.yml的日志配置 4.logback.xml配置文件定义 5.logback.xml配置文件解析 5.1 定义日志的存储路径 5.2 定义日志的输出格式 5.3 定义控制台输出 5.4 定义日志相关参数 5.5 定义日志的输出级别 6.测试日志输出 7.小结 前言 日志,作为一个应用系统的重要部分,然而并不会在项目预研或需求设计阶段就作为一个功能模块单独规划设计,但这丝毫不影响它在任何一个系统中的重要的地位

  • springboot动态调整日志级别的操作大全

    1.springboot使用log4j2 springboot使用的common-logging,底层兼容各种日志框架如,log4j2,slf4,logback等,默认底层使用的是logback,我们可以去除logback的依赖,引入log4j2的starter, 如下: 2.指定日志配置文件和日志等级 (此配置不限于log4j2,也适用于其他日志框架) 在resources目录下加入log4j2的xml配置文件,默认spring-boot会加载classpath下面的名为log4j2.xml,

  • Springboot+MDC+traceId日志中打印唯一traceId

    目录 1. 为什么需要这个traceId 2.通过MDC设置traceId 2.1 使用filter过滤器设置traceId 2.2 使用JWT token过滤器的项目 2.3 使用Interceptor拦截器设置traceId 3.logback.xml中配置traceId 4.补充异步方法带入上下文的traceId 5.在接口放回中,增加traceId返回 先看一张图: 有同学问:日志中[]中类似uuid的这个traceId是怎么实现的,这边文章就介绍下如何在springboot工程下用MD

  • 图文详解SpringBoot中Log日志的集成

    目录 一.日志的分类 1.名字分类 2.日志分类 3.日志级别 二.logback简介 1. 项目中日志分类 2. java项目中使用 三.SpringBoot中日志使用 1.将Springboot的日志默认级别改为debug 2.SpringBoot项目启动就会有一个默认的日志对象:logger 四.idea中使用日志插件简化开发 1.下载Log Support2插件 2.重启idea 3.Settings里面会新增一个Log Support目录 4.如果直接使用Android的日志会冲突 5

随机推荐